diff --git a/lib/utils/nixos.nix b/lib/utils/nixos.nix new file mode 100644 index 00000000..644d6c08 --- /dev/null +++ b/lib/utils/nixos.nix @@ -0,0 +1,33 @@ +{ lib }: + +{ + # This is only used for home-manager users without a NixOS user counterpart. + mapHomeManagerUser = user: settings: + let + homeDirectory = "/home/${user}"; + defaultUserConfig = { + extraGroups = lib.mkDefault [ "wheel" ]; + createHome = lib.mkDefault true; + home = lib.mkDefault homeDirectory; + isNormalUser = lib.mkForce true; + }; + in + ({ lib, ... }: { + home-manager.users."${user}" = { ... }: { + imports = [ + { + home.username = user; + home.homeDirectory = homeDirectory; + } + + ../../configs/home-manager/${user} + ]; + }; + + users.users."${user}" = lib.mkMerge [ + defaultUserConfig + settings + ]; + }); + +} diff --git a/modules/flake-parts/setups/nixos.nix b/modules/flake-parts/setups/nixos.nix index cf75f4cd..87ba6b46 100644 --- a/modules/flake-parts/setups/nixos.nix +++ b/modules/flake-parts/setups/nixos.nix @@ -28,6 +28,7 @@ let in (lib.makeOverridable nixosSystem) { specialArgs = { + foodogsquaredUtils = import ../../../lib/utils/nixos.nix { inherit lib; }; foodogsquaredModulesPath = builtins.toString nixosModules; }; modules = extraModules ++ [{