configurations: use home-manager module by default

This commit is contained in:
2024-03-21 23:01:42 +01:00
parent bc40af000f
commit cdc41c3934
9 changed files with 29 additions and 8 deletions
+5
View File
@@ -0,0 +1,5 @@
{ inputs, materusFlake, ... }:
let
genHomes = import ./genHomes.nix { inherit inputs; inherit materusFlake; };
in
genHomes "materus"
+58
View File
@@ -0,0 +1,58 @@
{ inputs, materusFlake, ... }:
let
profiles = import ../profile;
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
materusFlake.nixosConfigurations.${host}.materusCfg.hm.lib.homeManagerConfiguration {
pkgs = materusFlake.nixosConfigurations.${host}.pkgs;
extraSpecialArgs = { materusCfg = materusFlake.nixosConfigurations.${host}.materusCfg // { isHm = true; }; };
modules = [
(materusFlake.selfPath + "/configurations/shared/home/${username}")
(materusFlake.selfPath + "/configurations/host/${host}/home/${username}")
profiles.homeProfile
inputs.private.homeModule
materusFlake.nixosConfigurations.${host}.materusCfg.configInputs.sops-nix.homeManagerModules.sops
];
};
}]
++ (if ((i + 1) < len) then _for (i + 1) else [ ]))
);
in
(builtins.listToAttrs (_for 0)) // {
#Make generic x86_64-linux user profile "username"
${username} =
let
materusCfg = {
stable = false;
inherit materusFlake;
host = "Generic";
hm = inputs.configInputs.home-manager;
hmAsModule = false;
nixerus = inputs.configInputs.nixerus;
configInputs = inputs.configInputs;
path = materusFlake.selfPath;
isHm = true;
};
in
inputs.configInputs.home-manager.lib.homeManagerConfiguration {
pkgs = import inputs.nixpkgs { system = "x86_64-linux"; config = { allowUnfree = true; }; };
extraSpecialArgs = { inherit materusCfg; };
modules = [
./${username}
profiles.homeProfile
inputs.private.homeModule
materusCfg.configInputs.sops-nix.homeManagerModules.sops
];
};
};
in
genHomes
@@ -0,0 +1,15 @@
{ config, pkgs, lib, ... }:
{
home.username = "materus";
home.packages = [ ];
programs.git.signing.key = lib.mkDefault "28D140BCA60B4FD1";
programs.git.userEmail = lib.mkDefault "materus@podkos.pl";
programs.git.userName = lib.mkDefault "materus";
home.stateVersion = lib.mkDefault "23.05";
home.homeDirectory = lib.mkDefault "/home/materus";
programs.home-manager.enable = lib.mkDefault true;
}