Files
nixconfig/modules/home/wayland/apps/eww/bar/scripts/panel-toggle
T
2026-07-19 23:11:43 +02:00

21 lines
667 B
Bash
Executable File

#!/usr/bin/env bash
PANEL="$1"
# Atomic lock: flock acquires exclusively or exits immediately.
# Released automatically when the process exits (no trap needed).
exec 9>"/tmp/eww_panel_toggle.lock"
flock -n 9 || exit 0
# Every eww call must run with fd 9 closed (9>&-): `eww open` daemonizes and
# would inherit the fd, holding the flock forever and wedging all later toggles.
CURRENT=$(eww get active-panel 2>/dev/null 9>&- | tr -d '"')
if [ "$CURRENT" = "$PANEL" ]; then
eww update active-panel="" 9>&-
eww close popup 2>/dev/null 9>&-
else
eww update active-panel="$PANEL" 9>&-
eww close popup 2>/dev/null 9>&-
eww-open-on-current-screen popup 9>&-
fi