Simplify home-manager setup with flake-utils
1 file changed, 26 insertions(+), 25 deletions(-)
changed files
M flake.nix → flake.nix
@@ -13,26 +13,31 @@ emacs-overlay.inputs.nixpkgs.follows = "nixpkgs"; secrets = { flake = false; }; + utils.url = "github:numtide/flake-utils"; }; outputs = + inputs@ { self + , utils + , nixpkgs + , nixos-hardware + , home-manager , darwin - , emacs-overlay - , home-manager - , nixpkgs , nix-index-database - , nixos-hardware , 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 @@ common-gpu-nvidia-nonprime ]); }; 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 @@ (secrets + "/ssh.nix") ({ 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 @@ (secrets + "/ssh.nix") ({ 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