25 lines
829 B
Plaintext
25 lines
829 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
winid=$(xdotool search --classname QuakeConsole)
|
||
|
mongeom=$(herbstclient attr monitors.focus.geometry)
|
||
|
monw=${mongeom%x*}
|
||
|
monw=$(( monw - 4 ))
|
||
|
curtag=$(herbstclient attr tags.focus.name)
|
||
|
|
||
|
if [ -z "$winid" ]; then
|
||
|
(
|
||
|
rules=( floating=on floating_geometry="${monw}x512+1+1" )
|
||
|
herbstclient rule once pid=$BASHPID maxage=10 "${rules[@]}"
|
||
|
exec st -c QuakeConsole -n QuakeConsole -t QuakeConsole
|
||
|
) &
|
||
|
else
|
||
|
hcid=$(printf "0x%x" "$winid")
|
||
|
visible=$(herbstclient attr clients."$hcid".visible)
|
||
|
wintag=$(herbstclient attr clients."$hcid".tag)
|
||
|
if [ "$visible" = "false" ] || [ "$wintag" != "$curtag" ]; then
|
||
|
herbstclient chain , lock , set_attr clients."$hcid".floating_geometry "${monw}x512+1+1" , bring "$winid" , unlock
|
||
|
else
|
||
|
herbstclient set_attr clients."$hcid".minimized true
|
||
|
fi
|
||
|
fi
|