Files
ocdway/scripts/ocd-waybar-ctl
T

30 lines
830 B
Bash
Raw Normal View History

2026-07-30 04:29:37 +03:00
#!/bin/sh
# ocd-waybar-ctl: send a command to the ocd-waybar daemon.
# Usage: ocd-waybar-ctl {advance|lock|poll|quit}
# wired into the waybar custom/ocd module as on-click / on-click-right.
set -eu
cmd="${1:-advance}"
sock="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/ocd-waybar.sock"
if [ "$#" -gt 0 ]; then
cmd="$1"
fi
case "$cmd" in
advance|lock|poll|quit) ;;
*) echo "ocd-waybar-ctl: unknown command '$cmd'" >&2; exit 2 ;;
esac
if [ ! -S "$sock" ]; then
echo "ocd-waybar-ctl: daemon socket not found at $sock" >&2
exit 1
fi
printf '%s\n' "$cmd" | socat - UNIX-SENDTO:"$sock" 2>/dev/null \
|| printf '%s\n' "$cmd" | nc -U -u -w1 "$sock" 2>/dev/null \
|| python3 - "$sock" "$cmd" <<'PY'
import socket, sys
s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
s.sendto((sys.argv[2] + "\n").encode(), sys.argv[1])
PY