commit b22a53521ad12884e9792e6b3ab04e5569e746ec
parent 59023f566d2469360268a9e3c9bc9199cc0cfbc6
Author: Katja (zaphyra) <git@ctu.cx>
Date: Wed, 11 Jun 2025 21:10:39 +0200
parent 59023f566d2469360268a9e3c9bc9199cc0cfbc6
Author: Katja (zaphyra) <git@ctu.cx>
Date: Wed, 11 Jun 2025 21:10:39 +0200
config/nixos/modules/users: fix infinite-recursion when home-manager is not enabled
2 files changed, 132 insertions(+), 119 deletions(-)
M
|
74
++++++++++++++++++++++++++++++++++++++++----------------------------------
M
|
177
+++++++++++++++++++++++++++++++++++++++++--------------------------------------
diff --git a/config/nixos/modules/users/void.nix b/config/nixos/modules/users/void.nix @@ -18,42 +18,48 @@ in default = false; }; - config = lib.mkIf cfg.enable { - sops.secrets.voidPassword = { - neededForUsers = true; - sopsFile = inputs.self.sopsSecrets.common; - }; + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + sops.secrets.voidPassword = { + neededForUsers = true; + sopsFile = inputs.self.sopsSecrets.common; + }; - users.users.void = { - uid = 1000; - description = "Hannah"; - hashedPasswordFile = config.sops.secrets.voidPassword.path; - isNormalUser = true; - extraGroups = [ - "audio" - "dialout" - "docker" - "input" - "networkmanager" - "ssh" - "tss" - "video" - "wheel" - ]; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOFsnTwRtKRrn2KqbkTvXgwZniD1p90A7iqvQduhoDL6 openpgp:0x03F32AB3" - ]; - }; + users.users.void = { + uid = 1000; + description = "Hannah"; + hashedPasswordFile = config.sops.secrets.voidPassword.path; + isNormalUser = true; + extraGroups = [ + "audio" + "dialout" + "docker" + "input" + "networkmanager" + "ssh" + "tss" + "video" + "wheel" + ]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOFsnTwRtKRrn2KqbkTvXgwZniD1p90A7iqvQduhoDL6 openpgp:0x03F32AB3" + ]; + }; + } - home-manager.users.void.imports = lib.concatLists [ - [ - homeManagerModules.void.home - ] + ( + lib.mkIf config.modules.homeManager.enable { + home-manager.users.void.imports = lib.concatLists [ + [ + homeManagerModules.void.home + ] - (lib.optionals config.modules.filesystem.impermanence.home.enable [ - #homeManagerModules.void.impermanence # FIXME: implement impermanence - ]) - ]; - }; + (lib.optionals config.modules.filesystem.impermanence.home.enable [ + #homeManagerModules.void.impermanence # FIXME: implement impermanence + ]) + ]; + } + ) + ]); }
diff --git a/config/nixos/modules/users/zaphyra.nix b/config/nixos/modules/users/zaphyra.nix @@ -19,91 +19,98 @@ in default = false; }; - config = lib.mkIf cfg.enable { - sops.secrets.zaphyraPassword = { - neededForUsers = true; - sopsFile = inputs.self.sopsSecrets.common; - }; - - users.users.zaphyra = { - uid = 1001; - description = "Katja"; - hashedPasswordFile = config.sops.secrets.zaphyraPassword.path; - isNormalUser = true; - extraGroups = - [ - "ssh" - "wheel" - ] - ++ lib.optionals config.networking.networkmanager.enable [ - "networkmanager" + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + sops.secrets.zaphyraPassword = { + neededForUsers = true; + sopsFile = inputs.self.sopsSecrets.common; + }; + + users.users.zaphyra = { + uid = 1001; + description = "Katja"; + hashedPasswordFile = config.sops.secrets.zaphyraPassword.path; + isNormalUser = true; + extraGroups = + [ + "ssh" + "wheel" + ] + ++ lib.optionals config.networking.networkmanager.enable [ + "networkmanager" + ]; + openssh.authorizedKeys.keys = [ + (builtins.readFile "${pkgs.zaphyra-website}/ssh_pubkey.asc") + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnNyOCX+PopTHuNrfBwEmPM7FC6oM7nFgW/2tvW7ddT" ]; - openssh.authorizedKeys.keys = [ - (builtins.readFile "${pkgs.zaphyra-website}/ssh_pubkey.asc") - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnNyOCX+PopTHuNrfBwEmPM7FC6oM7nFgW/2tvW7ddT" - ]; - }; - - home-manager.users.zaphyra.imports = lib.concatLists [ - [ - homeManagerModules.zaphyra.home - ] - - (lib.optionals config.modules.filesystem.impermanence.home.enable [ - homeManagerModules.zaphyra.impermanence - ]) - - (lib.optionals config.modules.presets.graphical.enable ( - with homeManagerModules.zaphyra; - [ - configure.xdg - - programs.ghostty - programs.ssh - programs.git - programs.gpg - - programs.yt-dlp - programs.phockup - programs.bitwarden-cli - - programs.nautilus - - programs.firefox - programs.thunderbird - programs.errands - - programs.fractal - programs.tuba - - programs.typst - programs.ocrmypdf - programs.papers - programs.pdfarranger - programs.libreoffice - programs.apostrophe - - programs.celluloid - - programs.javascript - ] - )) - - (lib.optionals (config.modules.presets.graphical.type == "gnomeMinimal") ( - with homeManagerModules.zaphyra; - [ - configure.gnome - - gnomeExtensions.dash-to-dock - gnomeExtensions.just-perfection - gnomeExtensions.space-bar - gnomeExtensions.search-light - gnomeExtensions.emoji-copy - gnomeExtensions.pip-on-top - gnomeExtensions.bluetoothBatteryMeter - ] - )) - ]; - }; + }; + } + + ( + lib.mkIf config.modules.homeManager.enable { + home-manager.users.zaphyra.imports = lib.concatLists [ + [ + homeManagerModules.zaphyra.home + ] + + (lib.optionals config.modules.filesystem.impermanence.home.enable [ + homeManagerModules.zaphyra.impermanence + ]) + + (lib.optionals config.modules.presets.graphical.enable ( + with homeManagerModules.zaphyra; + [ + configure.xdg + + programs.ghostty + programs.ssh + programs.git + programs.gpg + homeManagerModules.common.programs.gpg + + programs.yt-dlp + programs.phockup + programs.bitwarden-cli + + programs.nautilus + + programs.firefox + programs.thunderbird + programs.errands + + programs.fractal + programs.tuba + + programs.typst + programs.ocrmypdf + programs.papers + programs.pdfarranger + programs.libreoffice + programs.apostrophe + + programs.celluloid + + programs.javascript + ] + )) + + (lib.optionals (config.modules.presets.graphical.type == "gnomeMinimal") ( + with homeManagerModules.zaphyra; + [ + configure.gnome + + gnomeExtensions.dash-to-dock + gnomeExtensions.just-perfection + gnomeExtensions.space-bar + gnomeExtensions.search-light + gnomeExtensions.emoji-copy + gnomeExtensions.pip-on-top + gnomeExtensions.bluetoothBatteryMeter + ] + )) + ]; + } + ) + ]); }