#!/bin/bash # omarchy:summary=Launch the Omarchy screensaver in the default terminal on the system with the correct font configuration. if ! command -v tte &>/dev/null; then exit 1 fi # Exit early if screensave is already running pgrep -f org.omarchy.screensaver && exit 0 # Allow screensaver to be turned off but also force started if omarchy-toggle-enabled screensaver-off && [[ $1 != "force" ]]; then exit 1 fi # Silently quit Walker on overlay walker -q focused=$(omarchy-hyprland-monitor-focused) terminal=$(xdg-terminal-exec --print-id) hypr_focus_monitor() { hyprctl dispatch "hl.dsp.focus({ monitor = \"$1\" })" >/dev/null 2>&1 || hyprctl dispatch focusmonitor "$1" >/dev/null } hypr_exec() { local command="$1" hyprctl dispatch "hl.dsp.exec_cmd([[$command]])" >/dev/null 2>&1 || hyprctl dispatch exec -- bash -lc "$command" >/dev/null } for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do hypr_focus_monitor "$m" case $terminal in *Alacritty*) hypr_exec "alacritty --class=org.omarchy.screensaver --config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml -e omarchy-screensaver" ;; *ghostty*) hypr_exec "ghostty --class=org.omarchy.screensaver --config-file=~/.local/share/omarchy/default/ghostty/screensaver --font-size=18 -e omarchy-screensaver" ;; *foot*) hypr_exec "foot --app-id=org.omarchy.screensaver --config=\"$OMARCHY_PATH/default/foot/screensaver.ini\" -e omarchy-screensaver" ;; *kitty*) hypr_exec "kitty --class=org.omarchy.screensaver --override font_size=18 --override window_padding_width=0 -e omarchy-screensaver" ;; *) notify-send -u low "✋ Screensaver only runs in Alacritty, Foot, Ghostty, or Kitty" ;; esac done hypr_focus_monitor "$focused"