diff --git a/flake.nix b/flake.nix index 259b4c3..3498a40 100644 --- a/flake.nix +++ b/flake.nix @@ -54,37 +54,42 @@ system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; + + mkHost = hostname: nixpkgs.lib.nixosSystem { + modules = [ + ./hosts/${hostname}/hardware-configuration.nix + ./hosts/${hostname}/disko.nix + ./system + home-manager.nixosModules.home-manager + { + powerManagement.enable = true; + system.stateVersion = "25.11"; + home-manager = { + users.chris = import ./home; + extraSpecialArgs = { + inherit inputs; + inherit pkgs-unstable; + inherit try-cli; + inherit voxtype; + inherit walker; + inherit impermanence; + inherit hostname; + }; + }; + } + ]; + specialArgs = { + inherit inputs; + inherit pkgs-unstable; + inherit impermanence; + inherit disko; + inherit hostname; + }; + }; in { nixosConfigurations = { - stationette = nixpkgs.lib.nixosSystem { - modules = [ - ./hardware-configuration.nix - ./hardware - ./system - home-manager.nixosModules.home-manager - { - powerManagement.enable = true; - system.stateVersion = "25.11"; - home-manager = { - users.chris = import ./home; - extraSpecialArgs = { - inherit inputs; - inherit pkgs-unstable; - inherit try-cli; - inherit voxtype; - inherit walker; - inherit impermanence; - }; - }; - } - ]; - specialArgs = { - inherit inputs; - inherit pkgs-unstable; - inherit impermanence; - inherit disko; - }; - }; + stationette = mkHost "stationette"; + station = mkHost "station"; }; # Standalone home-manager configuration entrypoint diff --git a/hosts/station/hardware-configuration.nix b/hosts/station/hardware-configuration.nix new file mode 100644 index 0000000..b07f2a6 --- /dev/null +++ b/hosts/station/hardware-configuration.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + + fileSystems."/persist" = { + device = "/dev/disk/by-partlabel/disk-station-root"; + neededForBoot = true; + fsType = "btrfs"; + options = [ "subvol=persist" ]; + }; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hardware-configuration.nix b/hosts/stationette/hardware-configuration.nix similarity index 100% rename from hardware-configuration.nix rename to hosts/stationette/hardware-configuration.nix diff --git a/system/boot.nix b/system/boot.nix index 72bac10..f61bcb3 100644 --- a/system/boot.nix +++ b/system/boot.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, hostname, ... }: { boot = { @@ -48,7 +48,7 @@ "splash" ]; bootspec.enable = true; - resumeDevice = "/dev/disk/by-partlabel/disk-stationette-root"; + resumeDevice = "/dev/disk/by-partlabel/disk-${hostname}-root"; }; systemd = { diff --git a/system/networking.nix b/system/networking.nix index 6a34b1e..531b5af 100644 --- a/system/networking.nix +++ b/system/networking.nix @@ -1,8 +1,8 @@ -{ ... }: +{ hostname, ... }: { networking = { - hostName = "stationette"; + hostName = hostname; networkmanager.enable = true; wireless = { iwd.enable = true; diff --git a/system/programs.nix b/system/programs.nix index 4243c06..57713e1 100644 --- a/system/programs.nix +++ b/system/programs.nix @@ -1,4 +1,4 @@ -{ pkgs, pkgs-unstable, ... }: +{ pkgs, pkgs-unstable, hostname, ... }: { @@ -18,7 +18,7 @@ withUWSM = true; }; steam = { - enable = true; + enable = hostname == "station"; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers