{ hostname, inputs, users ? [ ], modules ? [ ], overlays ? [ ], }: let mkHome = import ./mkHome.nix; usersHomes = builtins.listToAttrs ( map (username: { name = username; value = mkHome { inherit username hostname; }; }) users ); usersSystemsConfigs = map (username: ../users/${username}/system.nix) users; in { deployment = { allowLocalDeployment = true; tags = [ hostname ]; }; imports = [ { _module.args = { inherit inputs; inherit hostname; }; nixpkgs.overlays = overlays; } ../hosts/${hostname} ../hosts/common inputs.home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; extraSpecialArgs = { inherit inputs; inherit hostname; }; users = usersHomes; }; } ] ++ modules ++ usersSystemsConfigs; }