ohmu
·
2026-07-25
1#!/bin/bash
2
3LOCKFILE="/tmp/ws_switch.lock"
4
5wew | while read -r ev wid; do
6 if [ -f "$LOCKFILE" ]; then
7 continue
8 fi
9
10 case $ev in
11 CREATE)
12 if ! wattr o "$wid"; then
13 (
14 sleep 0.15
15 if [ ! -f "$LOCKFILE" ] && wattr o "$wid" >/dev/null 2>&1; then
16 for w in $(lsw); do
17 chwb -s "$TBW" -c "$INACTIVE" "$w"
18 done
19 chwb -s "$TBW" -c "$ACTIVE" "$wid"
20 wtf "$wid"
21 fi
22 ) &
23 fi
24 ;;
25 MAP)
26 if [ ! -f "$LOCKFILE" ] && ! wattr o "$wid"; then
27 for w in $(lsw); do
28 chwb -s "$TBW" -c "$INACTIVE" "$w"
29 done
30 chwb -s "$TBW" -c "$ACTIVE" "$wid"
31 wtf "$wid"
32 fi
33 ;;
34 ENTER)
35 if [ ! -f "$LOCKFILE" ] && ! wattr o "$wid"; then
36 for w in $(lsw); do
37 chwb -s "$TBW" -c "$INACTIVE" "$w"
38 done
39 chwb -s "$TBW" -c "$ACTIVE" "$wid"
40 wtf "$wid"
41 chwso -r "$wid"
42 fi
43 ;;
44 esac
45done