{ self, home-manager, unstable, ... } @ inputs: { mkHome = { username, hostname, pkgs, version, extraModules ? null }: let entrypoint = "${self}/home/configs/${hostname}/${username}.nix"; defaultModule = { lib, config, ... }: { _module.args.inputs = self.inputs; _module.args.self = self; manual = { html.enable = false; manpages.enable = false; json.enable = false; }; home = { inherit username; homeDirectory = "/home/${username}"; stateVersion = version; }; }; in home-manager.lib.homeManagerConfiguration { pkgs = pkgs; modules = [ defaultModule entrypoint ] ++ pkgs.lib.optionals (extraModules != null) extraModules; }; mkHydraFromHomeConfigurations = conf: unstable.lib.mapAttrs' (name: value: { name = "home-${name}"; value = value.activationPackage; }) conf; }