#!/bin/bash # Walker (with runAsService = true) and elephant are Home Manager user # services. Restart via systemd so the new process inherits the full graphical # session environment — the pkill/uwsm-app dance left a window where the # launcher would come back up with stale theming. restart_services() { if systemctl --user list-unit-files elephant.service >/dev/null 2>&1; then systemctl --user restart elephant.service fi if systemctl --user list-unit-files walker.service >/dev/null 2>&1; then systemctl --user restart walker.service elif systemctl --user is-enabled app-walker@autostart.service &>/dev/null; then systemctl --user restart app-walker@autostart.service else echo -e "\e[31mUnable to restart Walker -- RESTART MANUALLY\e[0m" fi } if (( EUID == 0 )); then SCRIPT_OWNER=$(stat -c '%U' "$0") USER_UID=$(id -u "$SCRIPT_OWNER") systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \ bash -c "$(declare -f restart_services); restart_services" else restart_services fi