diff --git a/flake.nix b/flake.nix index 8443436..4acd059 100644 --- a/flake.nix +++ b/flake.nix @@ -26,71 +26,68 @@ }; outputs = { self, home-manager, nixos-hardware, disko, nixpkgs, sops-nix, ... }@inputs: - { + let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; - - let - system = "x86_64-linux"; - pkgs = import nixpkgs { + defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux; + defaultNixOptions = { + nix.autoOptimiseStore = true; + }; + mkComputer = configurationNix: userName: extraModules: extraHomeModules: inputs.nixpkgs.lib.nixosSystem { inherit system; - config.allowUnfree = true; - }; + specialArgs = { inherit system inputs pkgs nixos-hardware; }; + modules = [ + #Secrets management + sops-nix.nixosModules.sops - defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux; - defaultNixOptions = { - nix.autoOptimiseStore = true; - }; - mkComputer = configurationNix: userName: extraModules: extraHomeModules: inputs.nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit system inputs pkgs nixos-hardware; }; - modules = [ - #Secrets management - sops-nix.nixosModules.sops - - #Machine config - configurationNix - defaultNixOptions - - #User config - (./. + "/users/${userName}") - - #Home manager - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users."${userName}" = { - imports = [ (./. + "/users/${userName}/home.nix") ] ++ extraHomeModules; - }; - } - ] ++ extraModules; - }; - in - { - nixosConfigurations = { - creatorforge-vm = mkComputer - ./machines/proxmox-vm.nix #machine specific configuration - "speccon18" #default user - [ - ./hosts/creatorforge.nix - ] #modules to load - []; #modules to be loaded by home-manager - creatorforge-framework = mkComputer - ./machines/framework.nix #machine specific configuration - "speccon18" #default user - [ - nixos-hardware.nixosModules.framework-12th-gen-intel - disko.nixosModules.disko - ./hosts/creatorforge.nix - ] #modules to load - []; #modules to be loaded by home-manager + #Machine config + configurationNix + defaultNixOptions + + #User config + (./. + "/users/${userName}") + + #Home manager + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users."${userName}" = { + imports = [ (./. + "/users/${userName}/home.nix") ] ++ extraHomeModules; + }; + } + ] ++ extraModules; }; - homeConfigurations = { - speccon18 = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./.hm-modules/home-manager.nix]; + in + { + nixosConfigurations = { + creatorforge-vm = mkComputer + ./machines/proxmox-vm.nix #machine specific configuration + "speccon18" #default user + [ + ./hosts/creatorforge.nix + ] #modules to load + []; #modules to be loaded by home-manager + creatorforge-framework = mkComputer + ./machines/framework.nix #machine specific configuration + "speccon18" #default user + [ + nixos-hardware.nixosModules.framework-12th-gen-intel + disko.nixosModules.disko + ./hosts/creatorforge.nix + ] #modules to load + []; #modules to be loaded by home-manager + }; + homeConfigurations = { + speccon18 = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ ./.hm-modules/home-manager.nix]; + }; }; }; - }; } \ No newline at end of file