mirror of
https://github.com/alrayyes/dotfiles/
synced 2023-11-14 15:56:30 +00:00
Added swallower for bspwm
This commit is contained in:
parent
7715c83525
commit
5a145d9ffd
@ -99,3 +99,6 @@ xautolock -time 10 -locker ~/.local/bin/lock &
|
||||
###---Misc---###
|
||||
# Needed for Jetbrains products to work
|
||||
wmname LG3D &
|
||||
|
||||
# Enable bspswallow
|
||||
pidof bspswallow || bash bspswallow &
|
||||
|
0
bspwm/.config/bspwm/noswallow
Normal file
0
bspwm/.config/bspwm/noswallow
Normal file
2
bspwm/.config/bspwm/terminals
Normal file
2
bspwm/.config/bspwm/terminals
Normal file
@ -0,0 +1,2 @@
|
||||
St
|
||||
Alacritty
|
47
bspwm/.local/bin/bspswallow
Executable file
47
bspwm/.local/bin/bspswallow
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Get class of a wid
|
||||
get_class() {
|
||||
id=$1
|
||||
if [ -z $id ]; then
|
||||
echo ""
|
||||
else
|
||||
xprop -id $id | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p'
|
||||
fi
|
||||
}
|
||||
|
||||
swallow() {
|
||||
addedtodesktop=$2
|
||||
echo $addedtodesktop
|
||||
lasttermdesktop=$(bspc query -D -n prev)
|
||||
echo $lasttermdesktop
|
||||
swallowerid=$1
|
||||
swallowingid=$(bspc query -n prev -N)
|
||||
if [ $addedtodesktop = $lasttermdesktop ]; then
|
||||
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
|
||||
fi
|
||||
}
|
||||
|
||||
spit() {
|
||||
spitterid=$1
|
||||
grep "^$spitterid" /tmp/swallowids || return
|
||||
spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}')
|
||||
bspc node $spittingid --flag hidden=off
|
||||
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
|
||||
node_add)
|
||||
swallow $(echo $event | awk '{print $5 " " $3}')
|
||||
;;
|
||||
node_remove)
|
||||
spit $(echo $event | awk '{print $4}')
|
||||
;;
|
||||
esac
|
||||
done
|
Loading…
Reference in New Issue
Block a user