You are here

Rotating wallpaper

Topics: 
Linux

I've been working a while on a Windows 7 machine, and one of the nice desktop blings there is the rotating wallpaper item. There are quite some sets available, and you can download many more (eg like the famous Bing backgrounds). Linux has this functionality already since some time, but the sets of available wallpapers there are quite limited.

I've played around with Drapes, but the rotation time is quite small (I want maximum one wallpaper rotation per day). So why not write a script which downloads automatically some wallpaper from sites like APOD, Bing or National Geographic ?

Here are some scripts I found on the internet which do this for you. Place them in your crontab with a frequency of your liking.

Bing

#!/bin/bash
# modify this, if you want to save to other place
#  - $HOME: your home dir
#  - %F: full date (%Y-%m-%d)
#  - other date format: man date :P
OUTPUT=`date "+$HOME/Pictures/bing_bg.%F.jpg"`

# get the bing.com page, and separate the background image (DONT touch this)
IMG=`wget -q http://www.bing.com -O- | sed -r "s/[\]//g;s/.*g_img=\{url:'([^']+)'.*/\1/gp;d"`

# get the background image to the output (DONT touch this)
wget -q "http://www.bing.com$IMG" -O "$OUTPUT"
# error handle
if [ $? -gt 0 ]; then
        echo "there is a problem with downloading.."
        exit 1
fi
# Setting background-image.
# NB: Use an absolute URL
gconftool-2 -t string -s /desktop/gnome/background/picture_filename "~/Pictures/bing_bg.%F.jpg"
gconftool-2 -t string -s /desktop/gnome/background/picture_options "zoom"

National Geographic

#!/bin/sh
#Based on code of APOD, you can really find everywhere on the web.

#Downloading html of the Picture-Of-The-Day
wget -N http://photography.nationalgeographic.com/photography/photo-of-the-day/ -O /tmp/ngpod.html
#Getting the URL of the image
img_location=`egrep -o "http://images.nationalgeographic.com/[^]*\.jpg" /tmp/ngpod.html|head -n 2|tail -n 1`

rm /tmp/ngpod.html

#Download image
TODAY=$(date +'%Y%m%d')
wget $img_location -O ~/Pictures/$TODAY.jpg

# Setting background-image.
# NB: Use an absolute URL
gconftool-2 -t string -s /desktop/gnome/background/picture_filename "~/Pictures/$TODAY.jpg"
gconftool-2 -t string -s /desktop/gnome/background/picture_options "zoom"