From e7bb5b424525daa5b596c938b842ce3ceb1421b3 Mon Sep 17 00:00:00 2001 From: osbm Date: Tue, 21 Oct 2025 10:23:38 +0300 Subject: [PATCH] is it working --- modules/nixos/system/home-manager.nix | 86 +++++++++++++++------------ 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/modules/nixos/system/home-manager.nix b/modules/nixos/system/home-manager.nix index b487bc5..cf75718 100644 --- a/modules/nixos/system/home-manager.nix +++ b/modules/nixos/system/home-manager.nix @@ -10,44 +10,54 @@ inputs.home-manager.nixosModules.home-manager ]; - config = lib.mkIf (config.osbmModules.homeManager.enable) { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; + config = lib.mkMerge [ + (lib.mkIf (config.osbmModules.homeManager.enable) { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; - # Pass inputs and outputs to home-manager modules - extraSpecialArgs = { inherit inputs; }; + # Pass inputs and outputs to home-manager modules + extraSpecialArgs = { inherit inputs; }; - # Configure home-manager for each user (excluding root) - users = lib.genAttrs (builtins.filter (u: u != "root") config.osbmModules.users) (username: { - home.stateVersion = lib.mkDefault "24.05"; - imports = [ - ../../home-manager - ] ++ lib.optionals config.osbmModules.hardware.disko.zfs.impermanence.enable [ - # if impermanence is enabled, configure persistence - { - home.persistence."/persist/home/${username}" = { - directories = [ - "Pictures" - "Documents" - "Videos" - ".gnupg" - ".ssh" - ".local/share/keyrings" - ".local/share/direnv" - # { - # directory = ".local/share/Steam"; - # method = "symlink"; - # } - ]; - files = [ - ".screenrc" - ]; - allowOther = true; - }; - } - ]; - }); - }; - }; + # Configure home-manager for each user (excluding root) + users = + let + # Capture the NixOS system config before entering the home-manager scope + systemConfig = config; + in + lib.genAttrs (builtins.filter (u: u != "root") config.osbmModules.users) (username: { + home.stateVersion = lib.mkDefault "24.05"; + imports = [ + ../../home-manager + ] + ++ lib.optionals systemConfig.osbmModules.hardware.disko.zfs.root.impermanenceRoot [ + # Import impermanence home-manager module when impermanence is enabled + inputs.impermanence.homeManagerModules.impermanence + # Configure persistence + { + home.persistence."/persist/home/${username}" = { + directories = [ + "Pictures" + "Documents" + "Videos" + ".gnupg" + ".ssh" + ".local/share/keyrings" + ".local/share/direnv" + # { + # directory = ".local/share/Steam"; + # method = "symlink"; + # } + ]; + files = [ + ".screenrc" + ]; + allowOther = true; + }; + } + ]; + }); + }; + }) + ]; }