{ inputs = { disko.url = "github:nix-community/disko"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-2311.url = "github:nixos/nixpkgs/23.11"; home-manager-2311 = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs-2311"; }; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; wayland-pipewire-idle-inhibit = { url = "github:rafaelrc7/wayland-pipewire-idle-inhibit"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, nixpkgs, nixpkgs-2311, nix, nixos-hardware, home-manager, wayland-pipewire-idle-inhibit, ... }: { nixosConfigurations = let workstation = { system = "x86_64-linux"; modules = [ ./workstation inputs.home-manager.nixosModules.home-manager ./home ./home/gui ./wm/sway ]; }; server = { system = "x86_64-linux"; modules = [ ./server inputs.home-manager.nixosModules.home-manager ./home ]; }; in { fred = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = server.modules ++ [ { networking.hostName = "fred"; } ./hosts/fred ]; }; www2 = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = server.modules ++ [ { networking.hostName = "www2"; } ./hosts/fred ]; }; loki = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; extraSpecialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { networking.hostName = "loki"; } ./hosts/loki inputs.nixos-hardware.nixosModules.dell-xps-13-9310 ]; }; smaug = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { networking.hostName = "smaug"; } ./hosts/smaug ./hosts/smaug/podman.nix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260 ]; }; pocket2 = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { networking.hostName = "pocket2"; } ./hosts/pocket2 inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-gpu-intel inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ]; }; dragon = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { networking.hostName = "dragon"; } ./hosts/dragon inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-gpu-intel inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ]; }; eve = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { networking.hostName = "eve"; } ./hosts/eve inputs.nixos-hardware.nixosModules.google-pixelbook ]; }; vm2 = inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = workstation.modules ++ [ { services.getty.autologinUser = "don"; networking.hostName = "vm2"; } ./hosts/vm1 ]; }; }; }; }