master ohmu/wmutils / scripts / watcher.sh
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    . $HOME/.theme
11
12    case $ev in
13        CREATE)
14            if ! wattr o "$wid"; then
15                (
16                    sleep 0.15
17                    if [ ! -f "$LOCKFILE" ] && wattr o "$wid" >/dev/null 2>&1; then
18                       for w in $(lsw); do
19                           chwb2 -s "$TBW" -c "$INACTIVE" "$w"
20                       done
21                       pkill -f "#chwb2.*$2" 2>/dev/null
22                       chwb2 -I $ACTIVE -O $OBC -i $IBW -o $OBW  -w "$wid" &
23                       wtf "$wid"
24                       tile.sh
25                    fi
26                ) &
27            fi
28            ;;
29        MAP)
30            if [ ! -f "$LOCKFILE" ] && ! wattr o "$wid"; then
31                for w in $(lsw); do
32                    chwb2 -s "$TBW" -c "$INACTIVE" "$w"
33                done
34                pkill -f "#chwb2.*$2" 2>/dev/null
35                chwb2 -I $ACTIVE -O $OBC -i $IBW -o $OBW  -w "$wid" &
36                wtf "$wid"
37            fi
38            ;;
39        ENTER)
40            if [ ! -f "$LOCKFILE" ] && ! wattr o "$wid"; then
41                for w in $(lsw); do
42                    chwb2 -s "$TBW" -c "$INACTIVE" "$w"
43                done
44                pkill -f "#chwb2.*$2" 2>/dev/null
45                chwb2 -I $ACTIVE -O $OBC -i $IBW -o $OBW  -w "$wid" &
46                wtf "$wid"
47                chwso -r "$wid"
48            fi
49            ;;
50    esac
51done