diff options
Diffstat (limited to 'modules/shared')
| -rw-r--r-- | modules/shared/base/default.nix | 23 | ||||
| -rw-r--r-- | modules/shared/base/documentation.nix | 19 | ||||
| -rw-r--r-- | modules/shared/base/nix.nix | 43 | ||||
| -rw-r--r-- | modules/shared/base/programs.nix | 16 | ||||
| -rw-r--r-- | modules/shared/default.nix | 22 | ||||
| -rw-r--r-- | modules/shared/nix.nix | 34 | ||||
| -rw-r--r-- | modules/shared/suites/default.nix | 5 | ||||
| -rw-r--r-- | modules/shared/suites/personal.nix | 15 | ||||
| -rw-r--r-- | modules/shared/traits/default.nix | 6 | ||||
| -rw-r--r-- | modules/shared/traits/home-manager.nix | 21 | ||||
| -rw-r--r-- | modules/shared/traits/locale.nix | 19 | ||||
| -rw-r--r-- | modules/shared/users/default.nix | 15 | ||||
| -rw-r--r-- | modules/shared/users/seth.nix | 35 |
13 files changed, 149 insertions, 124 deletions
diff --git a/modules/shared/base/default.nix b/modules/shared/base/default.nix new file mode 100644 index 0000000..9154ae7 --- /dev/null +++ b/modules/shared/base/default.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + inputs, + ... +}: let + cfg = config.base; + inherit (inputs) self; +in { + options.base = { + enable = lib.mkEnableOption "basic configurations"; + }; + + imports = [ + ./documentation.nix + ./nix.nix + ./programs.nix + ]; + + config = lib.mkIf cfg.enable { + system.configurationRevision = self.rev or self.dirtyRev or "dirty-unknown"; + }; +} diff --git a/modules/shared/base/documentation.nix b/modules/shared/base/documentation.nix new file mode 100644 index 0000000..0139f7d --- /dev/null +++ b/modules/shared/base/documentation.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.base.documentation; + enable = config.base.enable && cfg.enable; +in { + options.base.documentation = { + enable = lib.mkEnableOption "documentation settings" // {default = true;}; + }; + + config = lib.mkIf enable { + documentation = { + doc.enable = false; + info.enable = false; + }; + }; +} diff --git a/modules/shared/base/nix.nix b/modules/shared/base/nix.nix new file mode 100644 index 0000000..6e1bdf3 --- /dev/null +++ b/modules/shared/base/nix.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + cfg = config.base.nixSettings; + enable = config.base.enable && cfg.enable; +in { + options.base.nixSettings = { + enable = lib.mkEnableOption "nix settings" // {default = true;}; + }; + + config = lib.mkIf enable { + nix = { + registry.n.flake = lib.mkDefault inputs.nixpkgs; + + nixPath = [ + "nixpkgs=/etc/nix/inputs/nixpkgs" + ]; + + settings = { + auto-optimise-store = pkgs.stdenv.isLinux; + experimental-features = lib.mkDefault ["nix-command" "flakes" "auto-allocate-uids" "repl-flake"]; + + trusted-substituters = lib.mkDefault ["https://getchoo.cachix.org"]; + trusted-public-keys = lib.mkDefault ["getchoo.cachix.org-1:ftdbAUJVNaFonM0obRGgR5+nUmdLMM+AOvDOSx0z5tE="]; + nix-path = config.nix.nixPath; + }; + + gc = { + automatic = lib.mkDefault true; + options = lib.mkDefault "--delete-older-than 7d"; + }; + }; + + nixpkgs = { + overlays = [inputs.self.overlays.default]; + config.allowUnfree = lib.mkDefault true; + }; + }; +} diff --git a/modules/shared/base/programs.nix b/modules/shared/base/programs.nix new file mode 100644 index 0000000..796fce0 --- /dev/null +++ b/modules/shared/base/programs.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + ... +}: let + cfg = config.base.defaultPrograms; + enable = config.base.enable && cfg.enable; +in { + options.base.defaultPrograms = { + enable = lib.mkEnableOption "default programs" // {default = true;}; + }; + + config = lib.mkIf enable { + programs.gnupg.agent.enable = lib.mkDefault true; + }; +} diff --git a/modules/shared/default.nix b/modules/shared/default.nix index edd1f34..cf3dd84 100644 --- a/modules/shared/default.nix +++ b/modules/shared/default.nix @@ -1,24 +1,6 @@ { - lib, - inputs, - ... -}: let - inherit (inputs) self; -in { imports = [ - ./nix.nix - ./suites - ./users + ./base + ./traits ]; - - system.configurationRevision = self.rev or self.dirtyRev or "dirty-unknown"; - - documentation = { - doc.enable = false; - info.enable = false; - }; - - time.timeZone = lib.mkDefault "America/New_York"; - - programs.gnupg.agent.enable = lib.mkDefault true; } diff --git a/modules/shared/nix.nix b/modules/shared/nix.nix deleted file mode 100644 index 770e7e4..0000000 --- a/modules/shared/nix.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - config, - lib, - pkgs, - inputs, - ... -}: { - nix = { - registry.n.flake = lib.mkDefault inputs.nixpkgs; - - nixPath = [ - "nixpkgs=/etc/nix/inputs/nixpkgs" - ]; - - settings = { - auto-optimise-store = pkgs.stdenv.isLinux; - experimental-features = lib.mkDefault ["nix-command" "flakes" "auto-allocate-uids" "repl-flake"]; - - trusted-substituters = lib.mkDefault ["https://getchoo.cachix.org"]; - trusted-public-keys = lib.mkDefault ["getchoo.cachix.org-1:ftdbAUJVNaFonM0obRGgR5+nUmdLMM+AOvDOSx0z5tE="]; - nix-path = config.nix.nixPath; - }; - - gc = { - automatic = lib.mkDefault true; - options = lib.mkDefault "--delete-older-than 7d"; - }; - }; - - nixpkgs = { - overlays = [inputs.self.overlays.default]; - config.allowUnfree = lib.mkDefault true; - }; -} diff --git a/modules/shared/suites/default.nix b/modules/shared/suites/default.nix deleted file mode 100644 index b4bd1b5..0000000 --- a/modules/shared/suites/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./personal.nix - ]; -} diff --git a/modules/shared/suites/personal.nix b/modules/shared/suites/personal.nix deleted file mode 100644 index 1a9278a..0000000 --- a/modules/shared/suites/personal.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.suites.personal; -in { - options.suites.personal = { - enable = lib.mkEnableOption "Personal configuration set"; - }; - - config = lib.mkIf cfg.enable { - users.seth.enable = lib.mkDefault true; - }; -} diff --git a/modules/shared/traits/default.nix b/modules/shared/traits/default.nix new file mode 100644 index 0000000..fa5ba25 --- /dev/null +++ b/modules/shared/traits/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./locale.nix + ./home-manager.nix + ]; +} diff --git a/modules/shared/traits/home-manager.nix b/modules/shared/traits/home-manager.nix new file mode 100644 index 0000000..732f4f9 --- /dev/null +++ b/modules/shared/traits/home-manager.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + inputs, + inputs', + ... +}: let + cfg = config.traits.home-manager; +in { + options.traits.home-manager = { + enable = lib.mkEnableOption "home-manager configuration"; + }; + + config = lib.mkIf cfg.enable { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs inputs';}; + }; + }; +} diff --git a/modules/shared/traits/locale.nix b/modules/shared/traits/locale.nix new file mode 100644 index 0000000..9c07c14 --- /dev/null +++ b/modules/shared/traits/locale.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.traits.locale; +in { + options.traits.locale = { + US-east = { + enable = lib.mkEnableOption "eastern United States locale"; + }; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.US-east.enable { + time.timeZone = "America/New_York"; + }) + ]; +} diff --git a/modules/shared/users/default.nix b/modules/shared/users/default.nix deleted file mode 100644 index bb3062e..0000000 --- a/modules/shared/users/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - inputs, - inputs', - ... -}: { - imports = [ - ./seth.nix - ]; - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = {inherit inputs inputs';}; - }; -} diff --git a/modules/shared/users/seth.nix b/modules/shared/users/seth.nix deleted file mode 100644 index 0c98fc9..0000000 --- a/modules/shared/users/seth.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.users.seth; -in { - options.users.seth = { - enable = lib.mkEnableOption "Seth's configuration & home"; - }; - - config = lib.mkIf cfg.enable { - users.users.seth = - { - shell = pkgs.fish; - home = lib.mkDefault ( - if pkgs.stdenv.isDarwin - then "/Users/seth" - else "/home/seth" - ); - } - // lib.optionalAttrs pkgs.stdenv.isLinux { - extraGroups = ["wheel"]; - isNormalUser = true; - hashedPasswordFile = lib.mkDefault config.age.secrets.sethPassword.path; - }; - - programs.fish.enable = lib.mkDefault true; - - home-manager.users.seth = { - imports = [../../../users/seth]; - }; - }; -} |
