{ nixpkgs, home-manager, inputs, }: { hostname, hostName ? hostname, systemStateVersion ? "25.05", system, profile, username, extraModules ? [ ], extraSpecialArgs ? { }, homeModules ? [ ../home ], homeStateVersion ? "25.05", useSops ? true, }: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs system username; } // extraSpecialArgs; modules = [ ../hosts/${hostname} ../profiles/${profile}.nix { networking.hostName = hostName; system.stateVersion = systemStateVersion; } home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs system; }; home-manager.users.${username} = { home.stateVersion = homeStateVersion; imports = homeModules; }; } ] ++ nixpkgs.lib.optionals useSops [ inputs.sops-nix.nixosModules.sops ] ++ extraModules; }