summary refs log tree commit diff stats
path: root/flake.nix
diff options
context:
space:
mode:
authorAlan Pearce2024-04-09 22:08:33 +0200
committerAlan Pearce2024-04-09 22:08:33 +0200
commit67dec02ddcfae528dd23696cb7d51746dbadeaf6 (patch)
treeae5cbdcf4cc7c2fea5f05d3d2a380fa80aeabcd0 /flake.nix
parent8d94bdf8d7b58d91e11623d96c16daf1b6d82367 (diff)
downloadnixfiles-67dec02ddcfae528dd23696cb7d51746dbadeaf6.tar.lz
nixfiles-67dec02ddcfae528dd23696cb7d51746dbadeaf6.tar.zst
nixfiles-67dec02ddcfae528dd23696cb7d51746dbadeaf6.zip
Simplify home-manager setup with flake-utils
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix51
1 files changed, 26 insertions, 25 deletions
diff --git a/flake.nix b/flake.nix
index 2895d65d..b89941a7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -13,26 +13,31 @@
     secrets = {
       flake = false;
     };
+    utils.url = "github:numtide/flake-utils";
   };
 
   outputs =
+    inputs@
     { self
-    , darwin
-    , emacs-overlay
-    , home-manager
+    , utils
     , nixpkgs
-    , nix-index-database
     , nixos-hardware
+    , home-manager
+    , darwin
+    , nix-index-database
     , secrets
+    , emacs-overlay
     , ...
-    } @ attrs:
+    }:
     let
-      darwinSystem = "aarch64-darwin";
-      darwinPkgs = nixpkgs.legacyPackages.${darwinSystem};
-      nixosSystem = "x86_64-linux";
-      nixosPkgs = nixpkgs.legacyPackages.${nixosSystem};
-      aarch64LinuxSystem = "aarch64-linux";
-      aarch64LinuxPackages = nixpkgs.legacyPackages.${aarch64LinuxSystem};
+      mkHomeConfiguration = { modules, system }: home-manager.lib.homeManagerConfiguration {
+        pkgs = import nixpkgs { inherit system; };
+
+        inherit modules;
+        extraSpecialArgs = {
+          inherit inputs system;
+        };
+      };
     in
     {
       nixosConfigurations.prefect = nixpkgs.lib.nixosSystem {
@@ -48,16 +53,15 @@
         ]);
       };
       nixosConfigurations.nanopi = nixpkgs.lib.nixosSystem {
-        system = aarch64LinuxSystem;
+        system = utils.lib.system.aarch64-linux;
         modules = [ ./nanopi.nix ];
       };
       darwinConfigurations.mba = darwin.lib.darwinSystem {
-        system = darwinSystem;
+        system = utils.lib.system.aarch64-darwin;
         modules = [ ./system/mba.nix ];
       };
-      homeConfigurations."alan@mba" = home-manager.lib.homeManagerConfiguration {
-        pkgs = darwinPkgs;
-        extraSpecialArgs = { inherit attrs; };
+      homeConfigurations."alan@mba" = mkHomeConfiguration {
+        system = utils.lib.system.aarch64-darwin;
         modules = [
           ./user/mba.nix
           nix-index-database.hmModules.nix-index
@@ -66,9 +70,8 @@
           ({ nixpkgs.overlays = [ emacs-overlay.overlay ]; })
         ];
       };
-      homeConfigurations."alan@prefect" = home-manager.lib.homeManagerConfiguration {
-        pkgs = nixosPkgs;
-        extraSpecialArgs = { inherit attrs; };
+      homeConfigurations."alan@prefect" = mkHomeConfiguration {
+        system = utils.lib.system.x86_64-linux;
         modules = [
           ./user/prefect.nix
           nix-index-database.hmModules.nix-index
@@ -77,18 +80,16 @@
           ({ nixpkgs.overlays = [ emacs-overlay.overlay ]; })
         ];
       };
-      homeConfigurations."alan@nanopi" = home-manager.lib.homeManagerConfiguration {
-        pkgs = aarch64LinuxPackages;
-        extraSpecialArgs = { inherit attrs; };
+      homeConfigurations."alan@nanopi" = mkHomeConfiguration {
+        system = utils.lib.system.aarch64-linux;
         modules = [
           ./user/nanopi.nix
           nix-index-database.hmModules.nix-index
           (secrets + "/default.nix")
         ];
       };
-      homeConfigurations."alan@pappel" = home-manager.lib.homeManagerConfiguration {
-        pkgs = nixosPkgs;
-        extraSpecialArgs = { inherit attrs; };
+      homeConfigurations."alan@linde" = mkHomeConfiguration {
+        system = utils.lib.system.aarch64-linux;
         modules = [
           ./user/server.nix
           nix-index-database.hmModules.nix-index