#!/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