From a4b237956641c7d31647951f67a12fd41f6fe94e Mon Sep 17 00:00:00 2001 From: JopStro Date: Fri, 19 Jun 2020 09:57:30 +0100 Subject: Updated scripts to include case statments and to look for origin command in swallow/noswallow files --- alternative/bspswallow | 20 +++++++++++--------- bspswallow | 17 ++++++++++------- 2 files changed, 21 insertions(+), 16 deletions(-) mode change 100644 => 100755 bspswallow 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 diff --git a/bspswallow b/bspswallow old mode 100644 new mode 100755 index df5baa4..1406fcf --- a/bspswallow +++ b/bspswallow @@ -6,7 +6,7 @@ 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 } @@ -30,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 -- cgit v1.2.3