aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'nixos')
-rw-r--r--nixos/default.nix24
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.&lt;name?&gt;.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}";