From c517313f7e8fa11b9f04aeec41aa402ba8f92306 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Wed, 1 Aug 2018 22:55:55 +0200 Subject: [PATCH] nixos module: support `users.users..home-manager` --- nixos/default.nix | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/nixos/default.nix b/nixos/default.nix index c101f5a9..80b874db 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -4,7 +4,7 @@ with lib; let - cfg = config.home-manager; + cfg = config.users; hmModule = types.submodule ({name, ...}: { imports = import ../modules/modules.nix { @@ -13,8 +13,8 @@ let }; config = { - home.username = config.users.users.${name}.name; - home.homeDirectory = config.users.users.${name}.home; + home.username = cfg.users.${name}.name; + home.homeDirectory = cfg.users.${name}.home; }; }); @@ -22,16 +22,22 @@ in { options = { - home-manager.users = mkOption { - type = types.attrsOf hmModule; - default = {}; - description = '' - Per-user Home Manager configuration. - ''; + users.users = mkOption { + options = [ + { + home-manager = mkOption { + type = types.attrsOf hmModule; + default = {}; + description = '' + Per-user Home Manager configuration. + ''; + }; + } + ]; }; }; - config = mkIf (cfg.users != {}) { + config = { systemd.services = mapAttrs' (username: usercfg: nameValuePair ("home-manager-${utils.escapeSystemdPath username}") { description = "Home Manager environment for ${username}"; @@ -50,10 +56,10 @@ in ExecStart = pkgs.writeScript "activate-${username}" '' #! ${pkgs.stdenv.shell} -el echo Activating home-manager configuration for ${username} - exec ${usercfg.home.activationPackage}/activate + exec ${usercfg.home-manager.home.activationPackage}/activate ''; }; } - ) cfg.users; + ) (filterAttrs (n: v: v ? home-manager) cfg.users); }; }