System/home-manager/options.nix

71 lines
2.5 KiB
Nix
Raw Normal View History

2022-09-04 02:54:15 -04:00
{ config, lib, pkgs, ... }:
let
inherit (import ../modules/lib.nix {
inherit lib;
inherit pkgs;
})
nLib;
in with lib;
with nLib; {
2022-09-04 02:54:15 -04:00
options = {
nathan = {
programs = {
util = {
# Core utilites
core = mkEnableOptionT "core";
# Ssh configuration, enabled by default
ssh = mkEnableOptionT "ssh";
# Fish configuration, enabled by default
fish = mkEnableOptionT "fish";
# Git configuration, enabled by default
git = {
enable = mkEnableOptionT "git";
gpgSign =
mkDefaultOption "git signatures" config.nathan.config.isDesktop;
2023-04-26 01:24:42 -04:00
sshSign = mkDefaultOption "git ssh signatures" false;
2022-09-04 02:54:15 -04:00
};
# Bat configuration, enabled by default
bat = mkEnableOptionT "bat";
# JSON Utilities, enabled by default
json = mkEnableOptionT "json";
# Productivity application
productivity = mkDefaultOption "Productivity applications"
config.nathan.config.isDesktop;
2022-09-04 02:54:15 -04:00
};
# Development applications, enabled by default on desktop
devel = {
core = mkDefaultOption "Core Development Utilites"
config.nathan.config.isDesktop;
rust = mkDefaultOption "Rust Development Utilites"
config.nathan.config.isDesktop;
python = mkDefaultOption "Python Development Utilites"
config.nathan.config.isDesktop;
js = mkDefaultOption "JavaScript/TypeScript Development Utilites"
config.nathan.config.isDesktop;
raku = mkDefaultOption "Raku Development Utilites"
config.nathan.config.isDesktop;
2022-10-23 09:52:34 -04:00
idris2 = mkDefaultOption "Idris 2 Development Utilites"
config.nathan.config.isDesktop;
2022-10-31 11:53:04 -04:00
haskell = mkDefaultOption "Haskell Development Utilites"
config.nathan.config.isDesktop;
2023-08-25 11:50:29 -04:00
pico = mkDefaultOption "RP2040 Development Utilities"
config.nathan.config.isDesktop;
2022-09-04 02:54:15 -04:00
};
# Emacs, enabled by default on desktop
emacs = {
enable = mkDefaultOption "Emacs" config.nathan.config.isDesktop;
service =
mkDefaultOption "Emacs Service" config.nathan.config.isDesktop;
package = mkOption { description = "Emacs package to use"; };
2022-09-04 02:54:15 -04:00
};
};
# General configuration options
config = {
# Is this system a desktop?
# false by default
isDesktop = mkEnableOption "Desktop specific settings";
};
};
};
}