refactor(configurations): centralise home-manager config

This commit is contained in:
Mohammad Rafiq 2025-07-07 18:11:33 +08:00
parent b5772e4525
commit b63959f307
No known key found for this signature in database
2 changed files with 11 additions and 23 deletions

View file

@ -7,7 +7,14 @@
let
inherit (lib) nixosSystem;
inherit (lib.attrsets) mapAttrs;
inherit (cfg.lib.modules) forAllUsers';
cfg = config.flake;
globalCfg = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [ cfg.modules.homeManager.default ];
users = forAllUsers' (name: _: cfg.homes.${name});
};
hosts = cfg.manifest.hosts or { };
mkConfigurations =
class: hosts:
@ -15,13 +22,11 @@ let
name: value:
if class == "nixos" then
nixosSystem {
specialArgs = {
inherit inputs;
inherit (cfg) manifest;
hostName = name;
};
specialArgs.hostName = name;
modules = [
cfg.modules.nixos.default
inputs.home-manager.nixosModules.home-manager
{ home-manager = globalCfg; }
(value.extraCfg or { })
];
}
@ -30,5 +35,6 @@ let
) hosts;
in
{
imports = [ inputs.home-manager.flakeModules.home-manager ];
flake.nixosConfigurations = mkConfigurations "nixos" hosts.nixos;
}

View file

@ -1,18 +0,0 @@
{ inputs, config, ... }:
let
inherit (cfg.lib.modules) forAllUsers';
cfg = config.flake;
hm = inputs.home-manager;
globalCfg = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit (cfg) manifest; };
sharedModules = [ cfg.modules.homeManager.default ];
users = forAllUsers' (name: _: cfg.homes.${name});
};
in
{
imports = [ hm.flakeModules.home-manager ];
flake.modules.nixos.default.imports = [ hm.nixosModules.home-manager ];
flake.modules.nixos.default.config.home-manager = globalCfg;
}