Files
omarchycn/bin/omarchy-restart-shell
T
David Heinemeier Hansson d4d1b518e0 Remove redundant Hyprland launch wrapper
With initial workspace tracking disabled, windows naturally open on the active workspace. Remove the explicit Hyprland workspace dispatch and let shell actions, shell restarts, and presentation terminals launch directly.
2026-07-19 17:36:34 -07:00

40 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# omarchy:summary=Restart the Omarchy shell
# omarchy:examples=omarchy restart shell
CONFIG_DIR="$OMARCHY_PATH/shell"
[[ -f $CONFIG_DIR/shell.qml ]] || { echo "Omarchy shell config not found: $CONFIG_DIR" >&2; exit 1; }
# Allow running from outside the session (e.g. over ssh) by deriving the
# Hyprland instance signature from the newest instance runtime dir.
if [[ -z ${HYPRLAND_INSTANCE_SIGNATURE:-} ]]; then
hypr_dir=$(find "${XDG_RUNTIME_DIR:-/run/user/$UID}/hypr" -mindepth 1 -maxdepth 1 -type d -printf '%T@ %p\n' 2>/dev/null | sort -n | tail -n 1 | cut -d' ' -f2-)
[[ -n $hypr_dir ]] && export HYPRLAND_INSTANCE_SIGNATURE=${hypr_dir##*/}
fi
if [[ $(hyprctl -j monitors 2>/dev/null) == *'"LOCK"'* ]]; then
echo "Refusing to restart Omarchy shell while the session is locked." >&2
exit 1
fi
for (( attempt = 0; attempt < 50; attempt++ )); do
quickshell kill -p "$CONFIG_DIR" --any-display >/dev/null 2>&1 || break
sleep 0.1
done
if (( attempt == 50 )); then
echo "Could not stop all Omarchy shell instances." >&2
exit 1
fi
setsid quickshell -n -p "$CONFIG_DIR" >/dev/null 2>&1 &
for (( attempt = 0; attempt < 20; attempt++ )); do
OMARCHY_SHELL_IPC_TIMEOUT=0.5s omarchy-shell shell ping >/dev/null 2>&1 && exit 0
sleep 0.1
done
echo "Omarchy shell did not become ready after restart." >&2
exit 1