56 lines
1.1 KiB
Bash
Executable file
56 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
## use the windows on the desktop as screensavers by moving them randomly
|
|
|
|
. /tmp/wms_var
|
|
|
|
INPUT=$1 # input
|
|
FW=$(pfw) # focused window
|
|
SW=$(wattr w $(lsw -r)) # screen width
|
|
SH=$(wattr h $(lsw -r)) # screen height
|
|
WW=$((SW * 80 / 100)) # windows width = 80% of the screen
|
|
WH=$((SH * 80 / 100)) # windows height = 80% of the screen
|
|
MAXX=$((SW - WW)) # max X coordinate
|
|
MAXY=$((SH - WH)) # max Y coordinate
|
|
FREQ=20 # refresh frequency
|
|
|
|
usage() {
|
|
echo "usage:
|
|
wms_screensaver.sh [ -a, -f ]
|
|
-a) all windows
|
|
-f) focused window"
|
|
}
|
|
|
|
# random movement for all windowsaver
|
|
all_win() {
|
|
while true; do
|
|
for wid in $(lsw); do
|
|
x=$(shuf -i 0-$MAXX -n 1) # random x coordinate
|
|
y=$(shuf -i 0-$MAXY -n 1) # random y coordinate
|
|
wtp $x $y $WW $WH $wid
|
|
done
|
|
sleep $FREQ
|
|
done
|
|
}
|
|
|
|
# random movement for the focused window
|
|
focused_win() {
|
|
while true; do
|
|
x=$(shuf -i 0-$MAXX -n 1)
|
|
y=$(shuf -i 0-$MAXY -n 1)
|
|
wtp $x $y $WW $WH $FW
|
|
sleep $FREQ
|
|
done
|
|
}
|
|
|
|
case $INPUT in
|
|
-a)
|
|
all_win
|
|
;;
|
|
-f)
|
|
focused_win
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|