master ohmu/wmutils / scripts / bw
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