From bf52b6b5be8560b2eac88d60cb92f7936a77fff5 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Sat, 2 Mar 2024 18:20:51 +0800 Subject: [PATCH] flake-parts/setups/nixos: add `foodogsquaredUtils` to module args An ugly solution but can't get around much for generating Nix modules with the modularly set `foodogsquaredLib` so we'll have to make it evaluated before the NixOS config evaluation. --- lib/utils/nixos.nix | 33 ++++++++++++++++++++++++++++ modules/flake-parts/setups/nixos.nix | 1 + 2 files changed, 34 insertions(+) create mode 100644 lib/utils/nixos.nix 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 ++ [{