65 lines
1 KiB
Bash
Executable file
65 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
## use the windows on the desktop as screensavers by moving them randomly ##
|
|
# wms_screensaver.sh by @root_informatica.
|
|
|
|
. /tmp/wms_var
|
|
|
|
FLAG=$1
|
|
# focused window.
|
|
FW=$(pfw)
|
|
# windows width = 80% of the screen.
|
|
WW=$((SW * 80 / 100))
|
|
# windows height = 80% of the screen.
|
|
WH=$((SH * 80 / 100))
|
|
# max X coordinate.
|
|
MAXX=$((SW - WW))
|
|
# max Y coordinate.
|
|
MAXY=$((SH - WH))
|
|
# refresh freq.
|
|
FREQ=20
|
|
|
|
usage() {
|
|
cat<<EOF
|
|
usage:
|
|
wms_screensaver.sh [ -a, -f ]
|
|
-a) all windows
|
|
-f) focused window
|
|
EOF
|
|
}
|
|
|
|
# random movement for all windowsaver
|
|
all_win() {
|
|
while true; do
|
|
for wid in $(lsw); do
|
|
# random x coordinate.
|
|
x=$(shuf -i 0-$MAXX -n 1)
|
|
# random y coordinate.
|
|
y=$(shuf -i 0-$MAXY -n 1)
|
|
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
|