#!/bin/sh # Toggle a special workspace from waybar click # Tracks state to handle focus-loss auto-close issue # Usage: toggle-scratchpad NAME="$1" if [ -z "$NAME" ]; then echo "Usage: toggle-scratchpad " exit 1 fi STATEFILE="/tmp/scratchpad-$NAME-open" NOW=$(date +%s) # If state file exists and recent, scratchpad was open and just closed by focus loss # Don't reopen it - user intended to close if [ -f "$STATEFILE" ]; then LAST=$(cat "$STATEFILE") AGE=$((NOW - LAST)) rm -f "$STATEFILE" if [ "$AGE" -lt 2 ]; then # Was just open, user clicked to close - don't reopen exit 0 fi fi # Opening the scratchpad - mark timestamp echo "$NOW" > "$STATEFILE" hyprctl dispatch togglespecialworkspace "$NAME"