diff options
Diffstat (limited to 'alternative/bspswallow')
| -rw-r--r-- | alternative/bspswallow | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/alternative/bspswallow b/alternative/bspswallow index 3ae2bfe..8e787a3 100644 --- a/alternative/bspswallow +++ b/alternative/bspswallow @@ -6,15 +6,14 @@ get_class() { if [ -z $id ]; then echo "" else - xprop -id $id | sed -n '/WM_CLASS/s/.*, "\(.*\)"/\1/p' + xprop -id $id | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' fi } swallow() { swallowerid=$1 swallowingid=$(bspc query -n prev -N) - grep "^$(get_class $swallowerid)$" ~/.config/bspwm/noswallow && return - grep "^$(get_class $swallowerid)$" ~/.config/bspwm/terminals && return + cat ~/.config/bspwm/noswallow ~/.config/bspwm/terminals | grep "^$(get_class $swallowerid)$" && return grep "^$(get_class $swallowingid)$" ~/.config/bspwm/terminals || return echo $swallowerid $swallowingid >> /tmp/swallowids bspc node $swallowingid --flag hidden=on @@ -31,10 +30,13 @@ spit() { bspc subscribe node_add node_remove | while read -r event do - if [ $(echo $event | awk '{ print $1 }') = node_add ] - then - swallow $(echo $event | awk '{print $5}') - else - spit $(echo $event | awk '{print $4}') - fi + + case "$(echo $event | awk '{ print $1 }')" in + node_add) + swallow $(echo $event | awk '{print $5}') + ;; + node_remove) + spit $(echo $event | awk '{print $4}') + ;; + esac done |
