Nixerus/configurations/home/genHomes.nix

45 lines
1.4 KiB
Nix
Raw Normal View History

2023-05-18 12:07:07 +02:00
{ inputs, materusFlake, ... }:
let
2023-06-07 17:55:29 +02:00
profiles = import ../profile;
2023-05-18 12:07:07 +02:00
hosts = builtins.attrNames materusFlake.nixosConfigurations;
genHomes = username:
let
#Make host specific user profile "username@host"
_list = builtins.map (host: username + "@" + host) hosts;
_for = i: (
let len = builtins.length hosts; in
([{
name = builtins.elemAt _list i;
value = let host = builtins.elemAt hosts i; in
inputs.home-manager.lib.homeManagerConfiguration {
pkgs = materusFlake.nixosConfigurations.${host}.pkgs;
extraSpecialArgs = { inherit inputs; inherit materusFlake; };
modules = [
./${username}
../host/${host}/extraHome.nix
2023-06-07 17:55:29 +02:00
profiles.homeProfile
2023-05-18 12:07:07 +02:00
inputs.private.homeModule
];
};
}]
++ (if ((i + 1) < len) then _for (i + 1) else [ ]))
);
in
(builtins.listToAttrs (_for 0)) // {
#Make generic x86_64-linux user profile "username"
${username} = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = import inputs.nixpkgs { system = "x86_64-linux"; config = {allowUnfree = true;}; };
extraSpecialArgs = { inherit inputs; inherit materusFlake; };
modules = [
./${username}
2023-06-07 17:55:29 +02:00
profiles.homeProfile
2023-05-18 12:07:07 +02:00
inputs.private.homeModule
];
};
};
in
genHomes