#! /bin/bash #You can add a crontab like # # */15 * * * * ~/images/ChangeWallpaper # #using # #crontab -e # #to have your background change every 15 minutes. resx=1280 resy=1024 folder="images_interfacelift" tempfile="resultdl" cd ~ if ! test -d images then mkdir images fi cd images/ if ! test -d $folder then mkdir $folder fi cd $folder # 1 = stdout ; on écrit dans le fichier resultdl ('1' est facultatif) # 2 = sterr ; messages d'erreur (cookies, etc) balancés à la poubelle # protection des & pour w3m w3m -dump_source http://interfacelift.com/wallpaper/index.php?sort=date\&w=$resx\&h=$resy 1> $tempfile 2>/dev/null #un coup de grep avec expression régulière #on protège les guillemets et le point cat $tempfile | grep -o -E "/dl/wallpaper/(.+)_${resx}x${resy}\.jpg" > $tempfile echo "Download en cours..." cat $tempfile > /dev/null # hum sinon le exec fait de la merde, bizarre # on parcourt le fichier pour vérifier si chaque image a déjà été téléchargée exec < $tempfile while read line do #on isole le nom du fichier d'image picture=$(echo $line | grep -o -E "[0-9]{5}_(.+)_${resx}x${resy}\.jpg") #si ce fichier n'existe pas dans le dossier courant, on le télécharge ! if ! test -f $picture then wget -q --user-agent="Mozilla/4.0" http://interfacelift.com$line fi done # plus besoin du fichier temporaire ;) rm $tempfile echo "Download fini!" images=$(ls | grep ".jpg") # le grep est une protection si il existe d'autres fichiers dans le répertoire nb_images=$(echo $images | wc -w) # $RANDOM renvoie un entier différent à chaque invocation. # Echelle: 0 - 32767 (entier signé sur 16 bits). nombre=$RANDOM let "nombre %= $nb_images+1" #modulo le nombre d'images + 1 final=$(echo $images | cut -f$nombre -d" ") echo "Image choisie aléatoirement : $final" #on change le wallpaper sous gnome gconftool-2 --type=string --set -s /desktop/gnome/background/picture_filename `pwd`/$final