Files
nixos/test/hakase-popup-launch.sh
2026-01-04 22:08:11 -06:00

57 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
echo "-- initiate -- "
date
echo ""
tui_name=$1
active_popup=$(hyprctl clients -j | jq -r '.[] | select(.class | startswith("org.hakase.")) | .class')
if [[ -z ${tui_name} ]]; then
echo "Usage: $(basename "$0") [tui-name]"
exit 1
fi
popup_checker() {
if [[ -z "$active_popup" ]]; then
echo "no_popup"
elif [[ "$active_popup" != "org.hakase.popup.${tui_name}" ]]; then
echo "different"
else
echo "same"
fi
}
launch() {
echo "[LOG: $(date)]"
exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.hakase.popup."${tui_name}" -e "${tui_name}"
}
focus() {
exec hyprctl dispatch focuswindow "class:org.hakase.popup.${tui_name}"
}
replace() {
hyprctl dispatch closewindow "class:${active_popup}"
sleep 1
launch
}
run() {
local status
status=$(popup_checker)
if [[ "$status" == "no_popup" ]]; then
echo "[LOG: $(date)] no popup, launching..."
launch
elif [[ "$status" == "same" ]]; then
echo "[LOG: $(date)] same popup, focusing..."
focus
elif [[ "$status" == "different" ]]; then
echo "[LOG: $(date)] different popup, closing and relaunching..."
replace
fi
}
run