inputs: with inputs.self.lib; let mkConfiguration = name: { modules ? [ ], configuration ? ./${name}, this ? my.configurations.${name}, extraSpecialArgs ? { localUsername = my.username; localHostname = this.hostname; }, }: nameValuePair name (nixosSystem { inherit (this) system; modules = modules ++ attrValues inputs.self.modules ++ attrValues inputs.self.nixosModules ++ optional (configuration != null) (import configuration); specialArgs = { inherit inputs this; inherit (inputs.self) lib; } // extraSpecialArgs; }); # mkIso = system: { # this = { # hostname = "iso"; # inherit system; # isHeadless = false; # isHeadful = false; # }; # configuration = ./iso; # modules = [ # "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix" # ]; # }; mkTest = this: { modules = with inputs; [ "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" nixpkgs.nixosModules.notDetected ]; inherit this; }; in mapAttrs' mkConfiguration { # iso-arm = mkIso "aarch64-linux"; # iso-x86 = mkIso "x86_64-linux"; test-headless = mkTest { hostname = "test-headless"; system = "x86_64-linux"; isHeadless = true; isHeadful = false; }; test-headful = mkTest { hostname = "test-headful"; system = "x86_64-linux"; isHeadless = false; isHeadful = true; }; eonwe.modules = with inputs; [ nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-cpu-amd-pstate nixos-hardware.nixosModules.common-gpu-amd nixos-hardware.nixosModules.common-pc-ssd nixpkgs.nixosModules.notDetected ]; melian.modules = with inputs; [ nixos-hardware.nixosModules.common-pc-laptop-ssd nixos-hardware.nixosModules.lenovo-thinkpad-t480 nixpkgs.nixosModules.notDetected ]; manwe.modules = with inputs; [ "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-pc-ssd nixpkgs.nixosModules.notDetected ]; varda.modules = with inputs; [ "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-pc-ssd nixpkgs.nixosModules.notDetected ]; yavanna.modules = with inputs; [ "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" nixos-hardware.nixosModules.common-cpu-intel nixos-hardware.nixosModules.common-pc-hdd nixpkgs.nixosModules.notDetected ]; }