Update 2024-02-14 07:51 OpenBSD/amd64-x13

This commit is contained in:
c0dev0id
2024-02-14 07:54:31 +01:00
parent b55e6a3616
commit 9624895938
373 changed files with 19074 additions and 3045 deletions

64
.bin/OLD/scratchpad.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
# a i3-like scratchpad for arbitrary applications.
#
# this lets a new monitor called "scratchpad" appear in from the top into the
# current monitor. There the "scratchpad" will be shown (it will be created if
# it doesn't exist yet). If the monitor already exists it is scrolled out of
# the screen and removed again.
#
# Warning: this uses much resources because herbstclient is forked for each
# animation step.
#
# If a tag name is supplied, this is used instead of the scratchpad
tag="${1:-scratchpad}"
hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
mrect=( $(hc monitor_rect "" ) )
width=${mrect[2]}
height=${mrect[3]}
rect=(
$((width/2))
$((height/2))
$((${mrect[0]}+(width/4)))
$((${mrect[1]}+(height/4)))
)
hc chain , add "$tag" , set_attr tags.by-name."$tag".at_end true
monitor=scratchpad
exists=false
if ! hc add_monitor $(printf "%dx%d%+d%+d" "${rect[@]}") \
"$tag" $monitor 2> /dev/null ; then
exists=true
else
# remember which monitor was focused previously
hc chain \
, new_attr string monitors.by-name."$monitor".my_prev_focus \
, substitute M monitors.focus.index \
set_attr monitors.by-name."$monitor".my_prev_focus M
fi
show() {
hc lock
hc raise_monitor "$monitor"
hc focus_monitor "$monitor"
hc unlock
hc lock_tag "$monitor"
}
hide() {
# if q3terminal still is focused, then focus the previously focused monitor
# (that mon which was focused when starting q3terminal)
hc substitute M monitors.by-name."$monitor".my_prev_focus \
and + compare monitors.focus.name = "$monitor" \
+ focus_monitor M
hc remove_monitor "$monitor"
}
[ $exists = true ] && hide || show