diff options
Diffstat (limited to 'nixos/default.nix')
-rw-r--r-- | nixos/default.nix | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/nixos/default.nix b/nixos/default.nix index 1e1131f9cc7..5dec943b946 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -11,6 +11,7 @@ let config = { submoduleSupport.enable = true; + submoduleSupport.externalPackageInstall = cfg.useUserPackages; home.username = config.users.users.${name}.name; home.homeDirectory = config.users.users.${name}.home; }; @@ -20,16 +21,29 @@ in { options = { - home-manager.users = mkOption { - type = types.attrsOf hmModule; - default = {}; - description = '' - Per-user Home Manager configuration. + home-manager = { + useUserPackages = mkEnableOption '' + installation of user packages through the + <option>users.users.<name?>.packages</option> option. ''; + + users = mkOption { + type = types.attrsOf hmModule; + default = {}; + description = '' + Per-user Home Manager configuration. + ''; + }; }; }; config = mkIf (cfg.users != {}) { + users.users = mkIf cfg.useUserPackages ( + mapAttrs (username: usercfg: { + packages = usercfg.home.packages; + }) cfg.users + ); + systemd.services = mapAttrs' (username: usercfg: nameValuePair ("home-manager-${utils.escapeSystemdPath username}") { description = "Home Manager environment for ${username}"; |