Split Home Manager wiring out of user.nix

This commit is contained in:
Joshua Yuen 2026-09-11 23:31:42 -04:00
parent fc2359c215
commit 5686a17acb
Signed by: josh
GPG Key ID: 530DA0331EFE99F5
3 changed files with 44 additions and 31 deletions

View File

@ -8,6 +8,7 @@
./fonts.nix
./gdm.nix
./gnomeBoxes.nix
./home-manager.nix
./hyprland.nix
./localsend.nix
./network.nix

View File

@ -0,0 +1,43 @@
{
config,
host,
inputs,
homePath,
profile,
username,
...
}:
let
zshCfg = config.modules.zsh;
in
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = {
inherit
host
inputs
profile
username
;
};
users.${username} = {
imports = [ homePath ];
modules.gpg.signingKey = config.modules.gpg.signingKey;
modules.display.scale = config.modules.display.scale;
};
};
environment.pathsToLink =
# Since Home Manager is installed via its NixOS module, we need to add this so that
# the portal definitions and DE provided configurations get linked
[
"/share/applications"
"/share/xdg-desktop-portal"
]
# Needed to get completion for system packages (e.g. systemd)
++ (if zshCfg.enable then [ "/share/zsh" ] else [ ]);
}

View File

@ -1,37 +1,13 @@
{
config,
host,
inputs,
pkgs,
profile,
username,
...
}:
let
shellCfg = config.modules.shell;
zshCfg = config.modules.zsh;
in
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = {
inherit
host
inputs
profile
username
;
};
users.${username} = {
imports = [ ../../homes/${username}/home.nix ];
modules.gpg.signingKey = config.modules.gpg.signingKey;
modules.display.scale = config.modules.display.scale;
};
};
users.mutableUsers = true;
users.users.${username} = {
isNormalUser = true;
@ -49,11 +25,4 @@ in
# Set /etc/shells so GDM will show our user when ZSH is selected
environment.shells = [ pkgs.${shellCfg.defaultShell} ];
environment.pathsToLink =
# Since Home Manager is installed via its NixOS module, we need to add this so that
# the portal definitions and DE provided configurations get linked
[ "/share/applications" "/share/xdg-desktop-portal" ]
# Needed to get completion for system packages (e.g. systemd)
++ (if zshCfg.enable then [ "/share/zsh" ] else [ ]);
}