#!/bin/bash

# Exit early if we don't have the tte show
if ! command -v tte &>/dev/null; then
  exit 1
fi

# Exit early if screensave is already running
pgrep -f "alacritty --class Screensaver" && exit 0

# Allow screensaver to be turned off but also force started
if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]]; then
  exit 1
fi

focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')

for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
  hyprctl dispatch focusmonitor $m

  # FIXME: Find a way to make this generic where we it can work for kitty + ghostty
  hyprctl dispatch exec -- \
    alacritty --class Screensaver \
    --config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
    -e omarchy-cmd-screensaver
done

hyprctl dispatch focusmonitor $focused
