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---###
|
###---Misc---###
|
||||||
# Needed for Jetbrains products to work
|
# Needed for Jetbrains products to work
|
||||||
wmname LG3D &
|
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