diff options
author | Robert Helgesson <robert@rycee.net> | 2020-01-16 23:41:14 +0100 |
---|---|---|
committer | Robert Helgesson <robert@rycee.net> | 2020-01-21 20:47:04 +0100 |
commit | 6e4b9af0803ac00e94398768c5d19d2e423b0be9 (patch) | |
tree | 65f117f6a8b562348eaf12469dadb084af2be417 /nixos/default.nix | |
parent | c8323a0bf16acf2c9d89ce164568089017d19668 (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 '')
-rw-r--r-- | nixos/default.nix | 42 |
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) { |