aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2020-01-16 23:41:14 +0100
committerRobert Helgesson <robert@rycee.net>2020-01-21 20:47:04 +0100
commit6e4b9af0803ac00e94398768c5d19d2e423b0be9 (patch)
tree65f117f6a8b562348eaf12469dadb084af2be417 /nixos
parentc8323a0bf16acf2c9d89ce164568089017d19668 (diff)
Switch to extended Nixpkg's `lib`
This change makes use of the `extend` function inside `lib` to inject a new `hm` field containing the Home Manager library functions. This simplifies use of the Home Manager library in the modules and reduces the risk of accidental infinite recursion. PR #994
Diffstat (limited to 'nixos')
-rw-r--r--nixos/default.nix42
1 files changed, 26 insertions, 16 deletions
diff --git a/nixos/default.nix b/nixos/default.nix
index f53b4d4d6b7..6b7d559a651 100644
--- a/nixos/default.nix
+++ b/nixos/default.nix
@@ -6,22 +6,32 @@ let
cfg = config.home-manager;
- hmModule = types.submodule ({name, ...}: {
- imports = import ../modules/modules.nix { inherit lib pkgs; };
-
- config = {
- submoduleSupport.enable = true;
- submoduleSupport.externalPackageInstall = cfg.useUserPackages;
-
- # The per-user directory inside /etc/profiles is not known by
- # fontconfig by default.
- fonts.fontconfig.enable =
- cfg.useUserPackages && config.fonts.fontconfig.enable;
-
- home.username = config.users.users.${name}.name;
- home.homeDirectory = config.users.users.${name}.home;
- };
- });
+ extendedLib = import ../modules/lib/stdlib-extended.nix pkgs.lib;
+
+ hmModule = types.submoduleWith {
+ specialArgs = { lib = extendedLib; };
+ modules = [(
+ {name, ...}: {
+ imports = import ../modules/modules.nix {
+ inherit pkgs;
+ lib = extendedLib;
+ };
+
+ config = {
+ submoduleSupport.enable = true;
+ submoduleSupport.externalPackageInstall = cfg.useUserPackages;
+
+ # The per-user directory inside /etc/profiles is not known by
+ # fontconfig by default.
+ fonts.fontconfig.enable =
+ cfg.useUserPackages && config.fonts.fontconfig.enable;
+
+ home.username = config.users.users.${name}.name;
+ home.homeDirectory = config.users.users.${name}.home;
+ };
+ }
+ )];
+ };
serviceEnvironment =
optionalAttrs (cfg.backupFileExtension != null) {