diff options
| author | Jay <[email protected]> | 2020-06-19 18:18:09 +0100 |
|---|---|---|
| committer | Jay <[email protected]> | 2020-06-19 18:18:09 +0100 |
| commit | df3ede50510f222aa5ef0c066f2946ca487baf4d (patch) | |
| tree | 9280c96ba763f1803da5a3474b43ac3cf895f891 | |
| parent | c84b649108954a9c90e4cf0188258c8945724342 (diff) | |
use last node instead of prev and pass shellcheck
| -rwxr-xr-x | alternative/bspswallow | 33 | ||||
| -rwxr-xr-x | bspswallow | 34 |
2 files changed, 33 insertions, 34 deletions
diff --git a/alternative/bspswallow b/alternative/bspswallow index 57653d6..a9c5e07 100755 --- a/alternative/bspswallow +++ b/alternative/bspswallow @@ -3,25 +3,24 @@ # Get class of a wid get_class() { id=$1 - if [ -z $id ]; then + if [ -z "$id" ]; then echo "" else - xprop -id $id | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' + xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' fi } swallow() { addedtodesktop=$2 - echo $addedtodesktop - lasttermdesktop=$(bspc query -D -n prev) - echo $lasttermdesktop + lasttermdesktop=$(bspc query -D -n last) + swallowerid=$1 - swallowingid=$(bspc query -n prev -N) - if [ $addedtodesktop = $lasttermdesktop ]; then - grep "^$(get_class $swallowerid)$" ~/.config/bspwm/swallow || return - grep "^$(get_class $swallowingid)$" ~/.config/bspwm/terminals || return - echo $swallowerid $swallowingid >> /tmp/swallowids - bspc node $swallowingid --flag hidden=on + swallowingid=$(bspc query -N -n last) + if [ "$addedtodesktop" = "$lasttermdesktop" ]; then + grep "^$(get_class "$swallowerid")$" ~/.config/bspwm/swallow || return + grep "^$(get_class "$swallowingid")$" ~/.config/bspwm/terminals || return + echo "$swallowerid $swallowingid" >> /tmp/swallowids + bspc node "$swallowingid" --flag hidden=on fi } @@ -29,20 +28,20 @@ spit() { spitterid=$1 grep "^$spitterid" /tmp/swallowids || return spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}') - bspc node $spittingid --flag hidden=off - bspc node $spittingid -f + bspc node "$spittingid" --flag hidden=off + bspc node "$spittingid" -f sed -i "/^$spitterid/d" /tmp/swallowids } bspc subscribe node_add node_remove | while read -r event do - - case "$(echo $event | awk '{ print $1 }')" in + case "$(echo "$event" | awk '{ print $1 }')" in node_add) - swallow $(echo $event | awk '{print $5 " " $3}') + read -r node desktop < "$(echo "$event" | awk '{print $5 " " $3}')" + swallow "$node" "$desktop" ;; node_remove) - spit $(echo $event | awk '{print $4}') + spit "$(echo "$event" | awk '{print $4}')" ;; esac done @@ -3,25 +3,25 @@ # Get class of a wid get_class() { id=$1 - if [ -z $id ]; then + if [ -z "$id" ]; then echo "" else - xprop -id $id | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' + xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' fi } swallow() { addedtodesktop=$2 - echo $addedtodesktop - lasttermdesktop=$(bspc query -D -n prev) - echo $lasttermdesktop + lasttermdesktop=$(bspc query -D -n last) + swallowerid=$1 - swallowingid=$(bspc query -n prev -N) - if [ $addedtodesktop = $lasttermdesktop ]; then - 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 + swallowingid=$(bspc query -N -n last) + + if [ "$addedtodesktop" = "$lasttermdesktop" ]; then + 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 fi } @@ -29,20 +29,20 @@ spit() { spitterid=$1 grep "^$spitterid" /tmp/swallowids || return spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}') - bspc node $spittingid --flag hidden=off - bspc node $spittingid -f + bspc node "$spittingid" --flag hidden=off + bspc node "$spittingid" -f sed -i "/^$spitterid/d" /tmp/swallowids } bspc subscribe node_add node_remove | while read -r event do - - case "$(echo $event | awk '{ print $1 }')" in + case $(echo "$event" | awk '{ print $1 }') in node_add) - swallow $(echo $event | awk '{print $5 " " $3}') + read -r node desktop < "$(echo "$event" | awk '{print $5 " " $3}')" + swallow "$node" "$desktop" ;; node_remove) - spit $(echo $event | awk '{print $4}') + spit "$(echo "$event" | awk '{print $4}')" ;; esac done |
