thunderbird in German?
Ralf Mardorf
ralf.mardorf at rocketmail.com
Mon Aug 5 09:14:27 UTC 2019
Oops, the lines of the script were wrapped by accident.
[rocketmouse at archlinux ~]$ cat /usr/local/bin/window2unhide
#!/bin/dash
# window2unhide 2017-08-25 Ralf Mardorf
# To configure window2unhide you could use /etc/profile.d/window2unhide.sh
#
# values of the wanted x and y position of the window
# export WINDOW2UNHIDE_X_POS=hold
# export WINDOW2UNHIDE_Y_POS=141
#
# delay required to ensure that a launched application's window is active
# export WINDOW2UNHIDE_SLEEP=1
#
# values to eliminate x and y drift of the window
# this fix is needed for all windows
# export WINDOW2UNHIDE_X_FIX=2
# export WINDOW2UNHIDE_Y_FIX=54
#
# offset required to eliminate x and y drift of the window if x and/or y do/does not change
# this offset is needed for windows that open under the top panel
# but its unfavorable for windows that don't open under the top panel
# export WINDOW2UNHIDE_X_OFF=1
# export WINDOW2UNHIDE_Y_OFF=25
unhide_window ()
{
# values of the wanted x and y position of the window
case $WINDOW2UNHIDE_X_POS in
""|hold)
WINDOW2UNHIDE_X_POS=$X
;;
esac
case $WINDOW2UNHIDE_Y_POS in
"")
WINDOW2UNHIDE_Y_POS=141
;;
hold)
WINDOW2UNHIDE_Y_POS=$Y
;;
esac
# value to eliminate x drift of the window
case $WINDOW2UNHIDE_X_FIX in
"")
WINDOW2UNHIDE_X_FIX=2
;;
esac
# calculate value for x position of the window...
case $WINDOW2UNHIDE_X_POS in
$X) # ...if the x position doesn't change subtract the value to eliminate x drift and add an offset
case $WINDOW2UNHIDE_X_OFF in
"")
WINDOW2UNHIDE_X_OFF=1
;;
esac
X_POS=$(expr $WINDOW2UNHIDE_X_POS - $WINDOW2UNHIDE_X_FIX + $WINDOW2UNHIDE_X_OFF)
;;
*) # ...if the x position does change subtract the value to eliminate x drift
X_POS=$(expr $WINDOW2UNHIDE_X_POS - $WINDOW2UNHIDE_X_FIX)
;;
esac
# value to eliminate y drift of the window
case $WINDOW2UNHIDE_Y_FIX in
"")
WINDOW2UNHIDE_Y_FIX=54
;;
esac
# calculate value for y position of the window...
case $WINDOW2UNHIDE_Y_POS in
$Y) # ...if the y position doesn't change subtract the value to eliminate y drift and add an offset
case $WINDOW2UNHIDE_Y_OFF in
"")
WINDOW2UNHIDE_Y_OFF=25
;;
esac
Y_POS=$(expr $WINDOW2UNHIDE_Y_POS - $WINDOW2UNHIDE_Y_FIX + $WINDOW2UNHIDE_Y_OFF)
;;
*) # ...if the x position does change subtract the value to eliminate x drift
Y_POS=$(expr $WINDOW2UNHIDE_Y_POS - $WINDOW2UNHIDE_Y_FIX)
;;
esac
# move the window to new position
wmctrl -i -r $WINDOW -b remove,maximized_vert,maximized_horz
wmctrl -i -r $WINDOW -e "0,$X_POS,$Y_POS,$WIDTH,$HEIGHT"
}
case $1 in
"") # unhide active window
eval $(xdotool getwindowgeometry --shell $(xdotool getactivewindow))
unhide_window
;;
*) # launch an application and unhide its window
case $WINDOW2UNHIDE_SLEEP in
"")
WINDOW2UNHIDE_SLEEP=1
;;
esac
$@ &
sleep $WINDOW2UNHIDE_SLEEP # ensure that the window of the launched application...
eval $(xdotool getwindowgeometry --shell $(xdotool getactivewindow))
wmctrl -l | grep $(printf '%x\n' $WINDOW) | grep -qi $1 # ...is the active window
case $? in
0)
unhide_window
;;
esac
;;
esac
exit
More information about the freebsd-questions
mailing list