diff options
| author | JopStro <[email protected]> | 2020-06-21 17:09:57 +0100 |
|---|---|---|
| committer | JopStro <[email protected]> | 2020-06-21 17:09:57 +0100 |
| commit | acc23a4536470df8dc99285ddb97748b000198f3 (patch) | |
| tree | 81ba7337d5d4900c5c5babe5385d3ab17b634f69 | |
| parent | aa1630b72644250432dde73bb48cc09d519093c6 (diff) | |
Fix moving swallowing window between desktops
| -rwxr-xr-x | alternative/bspswallow | 14 | ||||
| -rwxr-xr-x | bspswallow | 11 |
2 files changed, 18 insertions, 7 deletions
diff --git a/alternative/bspswallow b/alternative/bspswallow index 078ddd3..832f191 100755 --- a/alternative/bspswallow +++ b/alternative/bspswallow @@ -16,6 +16,7 @@ swallow() { swallowerid=$1 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 @@ -26,22 +27,27 @@ swallow() { spit() { spitterid=$1 + spitterdesktop=$2 grep "^$spitterid" /tmp/swallowids || return spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}') + bspc node "$spittingid" --flag hidden=off + + termdesktop=$(bspc query -D -n "$spittingid") + [ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop" + 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) - # shellcheck disable=SC2046 - swallow $(echo "$event" | awk '{print $5 " " $3}') + swallow $(echo "$event" | awk '{print $5 " " $3}') ;; node_remove) - spit "$(echo "$event" | awk '{print $4}')" + spit $(echo "$event" | awk '{print $4 " " $3}') ;; esac done @@ -27,9 +27,15 @@ swallow() { spit() { spitterid=$1 + spitterdesktop=$2 grep "^$spitterid" /tmp/swallowids || return spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}') + bspc node "$spittingid" --flag hidden=off + + termdesktop=$(bspc query -D -n "$spittingid") + [ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop" + bspc node "$spittingid" -f sed -i "/^$spitterid/d" /tmp/swallowids } @@ -38,11 +44,10 @@ bspc subscribe node_add node_remove | while read -r event do case $(echo "$event" | awk '{ print $1 }') in node_add) - # shellcheck disable=SC2046 - swallow $(echo "$event" | awk '{print $5 " " $3}') + swallow $(echo "$event" | awk '{print $5 " " $3}') ;; node_remove) - spit "$(echo "$event" | awk '{print $4}')" + spit $(echo "$event" | awk '{print $4 " " $3}') ;; esac done |
