diff options
Diffstat (limited to 'home-manager/nixos/default.nix')
-rw-r--r-- | home-manager/nixos/default.nix | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/home-manager/nixos/default.nix b/home-manager/nixos/default.nix index f4e417bda71..9aedf618c51 100644 --- a/home-manager/nixos/default.nix +++ b/home-manager/nixos/default.nix @@ -15,6 +15,7 @@ let imports = import ../modules/modules.nix { inherit pkgs; lib = extendedLib; + useNixpkgsModule = !cfg.useGlobalPkgs; }; config = { @@ -45,6 +46,12 @@ in { <option>users.users.‹name?›.packages</option> option. ''; + useGlobalPkgs = mkEnableOption '' + using the system configuration's <literal>pkgs</literal> + argument in Home Manager. This disables the Home Manager + options <option>nixpkgs.*</option> + ''; + backupFileExtension = mkOption { type = types.nullOr types.str; default = null; @@ -78,9 +85,11 @@ in { }))); users.users = mkIf cfg.useUserPackages - (mapAttrs (username: usercfg: { packages = usercfg.home.packages; }) + (mapAttrs (username: usercfg: { packages = [ usercfg.home.path ]; }) cfg.users); + environment.pathsToLink = mkIf cfg.useUserPackages [ "/etc/profile.d" ]; + systemd.services = mapAttrs' (_: usercfg: let username = usercfg.home.username; in nameValuePair ("home-manager-${utils.escapeSystemdPath username}") { @@ -91,6 +100,8 @@ in { environment = serviceEnvironment; + unitConfig = { RequiresMountsFor = usercfg.home.homeDirectory; }; + serviceConfig = { User = usercfg.home.username; Type = "oneshot"; |