aboutsummaryrefslogtreecommitdiff
path: root/alternative/bspswallow
diff options
context:
space:
mode:
Diffstat (limited to 'alternative/bspswallow')
-rw-r--r--alternative/bspswallow20
1 files changed, 11 insertions, 9 deletions
diff --git a/alternative/bspswallow b/alternative/bspswallow
index 3ae2bfe..8e787a3 100644
--- a/alternative/bspswallow
+++ b/alternative/bspswallow
@@ -6,15 +6,14 @@ get_class() {
if [ -z $id ]; then
echo ""
else
- xprop -id $id | sed -n '/WM_CLASS/s/.*, "\(.*\)"/\1/p'
+ xprop -id $id | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p'
fi
}
swallow() {
swallowerid=$1
swallowingid=$(bspc query -n prev -N)
- grep "^$(get_class $swallowerid)$" ~/.config/bspwm/noswallow && return
- grep "^$(get_class $swallowerid)$" ~/.config/bspwm/terminals && return
+ 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
@@ -31,10 +30,13 @@ spit() {
bspc subscribe node_add node_remove | while read -r event
do
- if [ $(echo $event | awk '{ print $1 }') = node_add ]
- then
- swallow $(echo $event | awk '{print $5}')
- else
- spit $(echo $event | awk '{print $4}')
- fi
+
+ case "$(echo $event | awk '{ print $1 }')" in
+ node_add)
+ swallow $(echo $event | awk '{print $5}')
+ ;;
+ node_remove)
+ spit $(echo $event | awk '{print $4}')
+ ;;
+ esac
done