zaphyra's git: nixfiles

zaphyra and void's nixfiles

commit 22bbaf05a2ed747effec8be1d78d937c45f29896
parent fc33adb8b95899727b9de9619e7a9c04b5a8c1d0
Author: Katja (zaphyra) <git@ctu.cx>
Date: Tue, 27 May 2025 22:49:20 +0200

flake: add `homeConfigurations`
1 file changed, 40 insertions(+), 12 deletions(-)
M
flake.nix
|
52
++++++++++++++++++++++++++++++++++++++++------------
diff --git a/flake.nix b/flake.nix
@@ -57,6 +57,17 @@
         packages = final: prev: loadDir (path: path: final.callPackage path { }) ./packages;
       };
 
+      nixpkgsOverlays = [
+        inputs.self.overlays.packages
+        inputs.self.overlays.nixpkgsUnstable
+        inputs.zaphyraWebsite.overlays.default
+        inputs.stagit.overlays.default
+        inputs.flauschehornSexy.overlays.default
+        inputs.gpxMap.overlays.default
+        inputs.oeffisearch.overlays.default
+        inputs.things.overlays.default
+      ];
+
       hosts = loadDir importLoader ./hosts;
 
       nixosConfigurations = builtins.mapAttrs (

@@ -75,16 +86,7 @@
 
           modules = nixpkgsLib.flatten [
             {
-              nixpkgs.overlays = [
-                inputs.self.overlays.packages
-                inputs.self.overlays.nixpkgsUnstable
-                inputs.zaphyraWebsite.overlays.default
-                inputs.stagit.overlays.default
-                inputs.flauschehornSexy.overlays.default
-                inputs.gpxMap.overlays.default
-                inputs.oeffisearch.overlays.default
-                inputs.things.overlays.default
-              ];
+              nixpkgs.overlays = inputs.self.nixpkgsOverlays;
             }
 
             (

@@ -113,12 +115,38 @@
         }
       ) inputs.self.hosts;
 
+      homeConfigurations = builtins.listToAttrs (
+        builtins.map (
+          name:
+          (nixpkgsLib.nameValuePair name (
+            inputs.homeManager.lib.homeManagerConfiguration {
+              pkgs = import inputs.nixpkgs {
+                system = "x86_64-linux";
+                overlays = inputs.self.nixpkgsOverlays;
+                config = {
+                  allowUnfree = true;
+                };
+              };
+
+              modules = [
+                inputs.self.homeManagerModules."${name}".common
+              ];
+
+              extraSpecialArgs = {
+                inherit inputs;
+                inherit (inputs.self) homeManagerModules;
+              };
+            }
+          ))
+        ) (nixpkgsLib.attrNames inputs.self.homeManagerModules)
+      );
+
       hydraJobs = builtins.listToAttrs (
         builtins.map
           (
             name:
-            nixpkgsLib.nameValuePair (
-              name inputs.self.nixosConfigurations."${name}".config.system.build.toplevel
+            (nixpkgsLib.nameValuePair name
+              inputs.self.nixosConfigurations."${name}".config.system.build.toplevel
             )
           )
           [