diff --git a/flake.nix b/flake.nix index c22808a..f4e8b9d 100644 --- a/flake.nix +++ b/flake.nix @@ -16,56 +16,54 @@ }; }; - outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, plasma-manager }: { + outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, plasma-manager }: + let + system = "x86_64-linux"; + + # Common specialArgs for all systems + commonSpecialArgs = { + pkgs-unstable = import nixpkgs-unstable { + inherit system; + config.allowUnfree = true; + }; + }; + + # Helper function to create a system configuration + mkSystem = { modules, hardware ? [] }: nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = commonSpecialArgs; + modules = [ + home-manager.nixosModules.home-manager + ] ++ hardware ++ modules; + }; + + # Common desktop modules + commonDesktopModules = [ + ./systems/common.nix + ./users/jsutter.nix + ./desktop/plasma.nix + ./desktop/dev.nix + ./desktop/office.nix + ./desktop/gaming.nix + ./desktop/virtualization.nix + ./desktop/crypto.nix + ]; + in { nixosConfigurations = { - framework = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { - pkgs-unstable = import nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - }; - }; - modules = [ - home-manager.nixosModules.home-manager - nixos-hardware.nixosModules.framework-16-7040-amd - ./systems/common.nix + framework = mkSystem { + hardware = [ nixos-hardware.nixosModules.framework-16-7040-amd ]; + modules = commonDesktopModules ++ [ ./systems/framework.nix - ./users/jsutter.nix - ./desktop/plasma.nix - ./desktop/dev.nix - ./desktop/office.nix - ./desktop/gaming.nix - ./desktop/virtualization.nix - ./desktop/daw.nix - ./desktop/crypto.nix + ./desktop/daw.nix ]; }; - aurora = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { - pkgs-unstable = import nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - }; - }; - modules = [ - home-manager.nixosModules.home-manager - ./systems/common.nix + aurora = mkSystem { + modules = commonDesktopModules ++ [ ./systems/aurora.nix - ./users/jsutter.nix - ./desktop/plasma.nix - ./desktop/dev.nix - ./desktop/virtualization.nix - ./desktop/office.nix - ./desktop/gaming.nix - ./desktop/crypto.nix ]; }; - labrizor = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; + labrizor = mkSystem { modules = [ - home-manager.nixosModules.home-manager ./systems/common.nix ./systems/labrizor.nix ./users/jsutter.nix @@ -74,13 +72,11 @@ ./desktop/plasma.nix ./desktop/3dprinting.nix ./desktop/2dprinting.nix - ./desktop/office.nix + ./desktop/office.nix ]; }; - skip01 = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; + skip01 = mkSystem { modules = [ - home-manager.nixosModules.home-manager ./systems/common.nix ./systems/skip01.nix ./users/jsutter.nix