aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJopStro <[email protected]>2020-06-21 17:09:57 +0100
committerJopStro <[email protected]>2020-06-21 17:09:57 +0100
commitacc23a4536470df8dc99285ddb97748b000198f3 (patch)
tree81ba7337d5d4900c5c5babe5385d3ab17b634f69
parentaa1630b72644250432dde73bb48cc09d519093c6 (diff)
Fix moving swallowing window between desktops
-rwxr-xr-xalternative/bspswallow14
-rwxr-xr-xbspswallow11
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