{ self, prefs, ... }: let inherit (self) inputs; lib = inputs.nixpkgs.lib; mkSystem = { system, hostname, useHomeManager ? true, modules ? [ ], }: let pkgs = prefs.nixpkgs system; in lib.nixosSystem { inherit pkgs; specialArgs = { inherit inputs prefs; }; modules = modules ++ [ ./base-configuration.nix ./${hostname} ] ++ lib.lists.optionals useHomeManager [ { environment.systemPackages = [ pkgs.home-manager ]; } inputs.home-manager.nixosModules.default { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ]; }; in { hulk = mkSystem { system = "x86_64-linux"; hostname = "hulk"; }; }