aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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