blob: 7a4bb389526096ba70d4296c34bb5afa4fc5ad9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/bin/bash
# Refocus visible scratchpad after a window closes.
# Without this, closing a regular window while a scratchpad is visible
# leaves focus on the regular workspace instead of the scratchpad.
SOCKET="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
socat -U - "UNIX-CONNECT:$SOCKET" | while read -r line; do
if [[ "$line" == closewindow* ]]; then
# Check if a special workspace is active on the current monitor
special=$(hyprctl monitors -j | python3 -c "
import json, sys
for m in json.load(sys.stdin):
sw = m.get('specialWorkspace', {})
if sw.get('id', 0) != 0:
print(sw['name'])
break
" 2>/dev/null)
if [[ -n "$special" ]]; then
# Focus the top window on the special workspace
hyprctl dispatch focuswindow "workspace:$special" &>/dev/null
fi
fi
done
|