aboutsummaryrefslogtreecommitdiff
path: root/home-manager/nixos/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/nixos/default.nix')
-rw-r--r--home-manager/nixos/default.nix13
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";