{ home-manager, ... }: { universal.modules = [ home-manager.nixosModules.home-manager ( { config, pkgs, ... }: { users.users.emv = { isNormalUser = true; description = "emv"; # shell = pkgs.zsh; # this is scuffed as hell, please, for the love of fuck, make a zsh.mod.nix file sometime # ignoreShellProgramCheck = true; extraGroups = [ "wheel" ]; }; home-manager = { backupFileExtension = "bak"; useGlobalPkgs = true; useUserPackages = true; users.emv = { home.username = "emv"; home.homeDirectory = "/home/emv"; home.stateVersion = "24.05"; imports = config._module.args.home_modules; }; }; } ) ]; personal.home_modules = [ ( { lib, config, ... }: { options.systemd-fuckery = { auto-restart = lib.mkOption { type = lib.types.listOf lib.types.str; default = [ ]; }; }; config = { home.activation.restartSystemdFuckery = let ensureRuntimeDir = "XDG_RUNTIME_DIR=\${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"; systemctl = "env ${ensureRuntimeDir} ${config.systemd.user.systemctlPath}"; each = f: builtins.concatStringsSep "\n" (map f config.systemd-fuckery.auto-restart); in lib.mkIf (config.systemd-fuckery.auto-restart != [ ]) ( lib.hm.dag.entryAfter [ "reloadSystemd" ] '' systemdStatus=$(${systemctl} --user is-system-running 2>&1 || true) if [[ $systemdStatus == 'running' || $systemdStatus == 'degraded' ]]; then ${ each (unit: '' run ${systemctl} --user try-restart ${unit}.service '') } else echo "User systemd daemon not running. Skipping reload." fi '' ); }; } ) ]; }