From acc23a4536470df8dc99285ddb97748b000198f3 Mon Sep 17 00:00:00 2001 From: JopStro Date: Sun, 21 Jun 2020 17:09:57 +0100 Subject: Fix moving swallowing window between desktops --- alternative/bspswallow | 14 ++++++++++---- 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 diff --git a/bspswallow b/bspswallow index 1b60c7f..35784a2 100755 --- a/bspswallow +++ b/bspswallow @@ -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 -- cgit v1.2.3