{ flake, flakeInputs, path, userName, config, lib, utils, ... }: with lib; { config = { users.users.${userName} = {}; # Just make sure the user is created home-manager.useUserService = true; home-manager.extraSpecialArgs = { inherit flake flakeInputs path; }; home-manager.users.${userName} = { imports = lib.attrValues flake.homeModules; config = { manual.manpages.enable = true; systemd.user.startServices = "sd-switch"; programs.ssh.internallyManaged = mkForce true; }; }; systemd.services."home-manager-${utils.escapeSystemdPath userName}" = lib.mkIf (!config.home-manager.enableSystemd) { restartIfChanged = false; # only run once on startup, deploy to running system with deploy-rs }; }; }