From 2c69b70e764a244db0946971170795d388670c32 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 25 May 2024 20:17:22 -0400 Subject: modules: use individual files for user traits --- modules/darwin/traits/default.nix | 2 +- modules/darwin/traits/users.nix | 15 ------------- modules/darwin/traits/users/default.nix | 5 +++++ modules/darwin/traits/users/seth.nix | 15 +++++++++++++ modules/nixos/traits/default.nix | 2 +- modules/nixos/traits/users.nix | 30 ------------------------- modules/nixos/traits/users/default.nix | 5 +++++ modules/nixos/traits/users/seth.nix | 28 +++++++++++++++++++++++ modules/shared/traits/default.nix | 2 +- modules/shared/traits/users.nix | 39 --------------------------------- modules/shared/traits/users/default.nix | 5 +++++ modules/shared/traits/users/seth.nix | 38 ++++++++++++++++++++++++++++++++ 12 files changed, 99 insertions(+), 87 deletions(-) delete mode 100644 modules/darwin/traits/users.nix create mode 100644 modules/darwin/traits/users/default.nix create mode 100644 modules/darwin/traits/users/seth.nix delete mode 100644 modules/nixos/traits/users.nix create mode 100644 modules/nixos/traits/users/default.nix create mode 100644 modules/nixos/traits/users/seth.nix delete mode 100644 modules/shared/traits/users.nix create mode 100644 modules/shared/traits/users/default.nix create mode 100644 modules/shared/traits/users/seth.nix (limited to 'modules') diff --git a/modules/darwin/traits/default.nix b/modules/darwin/traits/default.nix index 0939a66..3664eb7 100644 --- a/modules/darwin/traits/default.nix +++ b/modules/darwin/traits/default.nix @@ -1,6 +1,6 @@ { imports = [ ./home-manager.nix - ./users.nix + ./users ]; } diff --git a/modules/darwin/traits/users.nix b/modules/darwin/traits/users.nix deleted file mode 100644 index 7ad7491..0000000 --- a/modules/darwin/traits/users.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.traits.users; -in { - config = lib.mkMerge [ - (lib.mkIf cfg.seth.enable { - home-manager.users.seth = { - seth.desktop.enable = false; - }; - }) - ]; -} diff --git a/modules/darwin/traits/users/default.nix b/modules/darwin/traits/users/default.nix new file mode 100644 index 0000000..a81dacf --- /dev/null +++ b/modules/darwin/traits/users/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./seth.nix + ]; +} diff --git a/modules/darwin/traits/users/seth.nix b/modules/darwin/traits/users/seth.nix new file mode 100644 index 0000000..5e206f3 --- /dev/null +++ b/modules/darwin/traits/users/seth.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.traits.users.seth; +in { + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + home-manager.users.seth = { + seth.desktop.enable = false; + }; + }) + ]; +} diff --git a/modules/nixos/traits/default.nix b/modules/nixos/traits/default.nix index 1a69edb..7f03a58 100644 --- a/modules/nixos/traits/default.nix +++ b/modules/nixos/traits/default.nix @@ -7,7 +7,7 @@ ./nvidia.nix ./secrets.nix ./tailscale.nix - ./users.nix + ./users ./zram.nix ]; } diff --git a/modules/nixos/traits/users.nix b/modules/nixos/traits/users.nix deleted file mode 100644 index 2802901..0000000 --- a/modules/nixos/traits/users.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - config, - lib, - secretsDir, - ... -}: let - cfg = config.traits.users; -in { - options.traits.users = { - seth = { - manageSecrets = - lib.mkEnableOption "automatic secrets management" - // { - default = config.traits.secrets.enable; - }; - }; - }; - - config = lib.mkMerge [ - (lib.mkIf (cfg.seth.enable && cfg.seth.manageSecrets) { - age.secrets = { - sethPassword.file = secretsDir + "/sethPassword.age"; - }; - - users.users.seth = { - hashedPasswordFile = lib.mkDefault config.age.secrets.sethPassword.path; - }; - }) - ]; -} diff --git a/modules/nixos/traits/users/default.nix b/modules/nixos/traits/users/default.nix new file mode 100644 index 0000000..a81dacf --- /dev/null +++ b/modules/nixos/traits/users/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./seth.nix + ]; +} diff --git a/modules/nixos/traits/users/seth.nix b/modules/nixos/traits/users/seth.nix new file mode 100644 index 0000000..9ebb6c8 --- /dev/null +++ b/modules/nixos/traits/users/seth.nix @@ -0,0 +1,28 @@ +{ + config, + lib, + secretsDir, + ... +}: let + cfg = config.traits.users.seth; +in { + options.traits.users.seth = { + manageSecrets = + lib.mkEnableOption "automatic secrets management" + // { + default = config.traits.secrets.enable; + }; + }; + + config = lib.mkMerge [ + (lib.mkIf (cfg.enable && cfg.manageSecrets) { + age.secrets = { + sethPassword.file = secretsDir + "/sethPassword.age"; + }; + + users.users.seth = { + hashedPasswordFile = lib.mkDefault config.age.secrets.sethPassword.path; + }; + }) + ]; +} diff --git a/modules/shared/traits/default.nix b/modules/shared/traits/default.nix index 2c409a7..ad1ecb0 100644 --- a/modules/shared/traits/default.nix +++ b/modules/shared/traits/default.nix @@ -2,6 +2,6 @@ imports = [ ./home-manager.nix ./locale.nix - ./users.nix + ./users ]; } diff --git a/modules/shared/traits/users.nix b/modules/shared/traits/users.nix deleted file mode 100644 index e18e40a..0000000 --- a/modules/shared/traits/users.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.traits.users; -in { - options.traits.users = { - seth = { - enable = lib.mkEnableOption "Seth's user & home configurations"; - }; - }; - - config = lib.mkMerge [ - (lib.mkIf cfg.seth.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; - }; - - programs.fish.enable = lib.mkDefault true; - - home-manager.users.seth = { - imports = [../../../users/seth]; - seth.enable = true; - }; - }) - ]; -} diff --git a/modules/shared/traits/users/default.nix b/modules/shared/traits/users/default.nix new file mode 100644 index 0000000..a81dacf --- /dev/null +++ b/modules/shared/traits/users/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./seth.nix + ]; +} diff --git a/modules/shared/traits/users/seth.nix b/modules/shared/traits/users/seth.nix new file mode 100644 index 0000000..ce86efb --- /dev/null +++ b/modules/shared/traits/users/seth.nix @@ -0,0 +1,38 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.traits.users.seth; +in { + options.traits.users.seth = { + enable = lib.mkEnableOption "Seth's user & home configurations"; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + users.users.seth.shell = pkgs.fish; + + programs.fish.enable = true; + + home-manager.users.seth = { + imports = [../../../../users/seth]; + seth.enable = true; + }; + }) + + (lib.mkIf (cfg.enable && pkgs.stdenv.isDarwin) { + users.users.seth = { + home = lib.mkDefault "/Users/seth"; + }; + }) + + (lib.mkIf (cfg.enable && pkgs.stdenv.isLinux) { + users.users.seth = { + extraGroups = ["wheel"]; + isNormalUser = true; + }; + }) + ]; +} -- cgit v1.2.3