A simple wallpaper wrapper
Edit as necessary, requires hsetroot, mplayer, and a working xvidix on your graphics card (for video).
#!/bin/sh
# Set Wallpaper
# If $1 is not empty
if [ -n "$1" ] ; then
case "$1" in
last)
# Grab last set wallpaper from file and store in $WALL
WALL=`cat ~/desktop/lastwall`
;;
*)
# Set $WALL from command line and write to file for future use
WALL=$1
echo $1 > ~/desktop/lastwall
;;
esac
case "$WALL" in
*.jpg|*.jpeg|*.png|*.gif|*.bmp)
# $WALL is an image file, so use hsetroot to set it as the background
echo Setting with hsetroot...
hsetroot -full "$WALL"
;;
*)
# $WALL is likely not an image, so attempt to play with mplayer
echo Setting with mplayer...
# Blank out background first
hsetroot -solid "#000000"
# "Play" background using colorkey
sudo mplayer -fs -vo xvidix -rootwin -colorkey 000000 -quiet "$WALL" &
;;
esac
# Return good
exit 0
else
echo Please specify an image or a video file to set, or use "last"
# Return bad
exit 1
fi
To use, run setwallpaper.sh /path/to/image/or/video/file
or setwallpaper.sh last