{ inputs }: { mkSystem = { hostname , system }: inputs.nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs system hostname; }; modules = [ ../modules/systems ../hosts/${hostname} { networking.hostName = hostname; nixpkgs = { config.allowUnfree = true; }; # Add each input as a registry nix.registry = inputs.nixpkgs.lib.mapAttrs' (n: v: inputs.nixpkgs.lib.nameValuePair (n) ({ flake = v; })) inputs; } ]; }; mkHome = { username , system , hostname , desktop ? false }: inputs.home-manager.lib.homeManagerConfiguration { inherit username system; extraSpecialArgs = { inherit system hostname desktop; }; homeDirectory = "/home/${username}"; configuration = ../users/${username}; extraModules = [ ../modules/home-manager # Base configuration { nixpkgs = { config.allowUnfree = true; }; programs = { home-manager.enable = true; git.enable = true; }; systemd.user.startServices = "sd-switch"; } ]; }; }