Mastodon

deviantART Wallpapers

326px-DeviantART_Logo.svgGelangweilt von meinem alten Wallpaper habe ich ein kleines Bash-Skript geschrieben, welches mir die aktuell populärsten Fotografien von deviantart.com herunterlädt und automatisch als Wallpaper einsetzt. Per Cron-Job wird es alle 10 Minuten gestartet. So bekomme ich regelmäßig ein neues Wallpaper 🙂 Das Skript benötigt die Programme: wget, xargs, grep, tail, head und gconftool-2 welche bei einer normalen Linuxdistribution alle enthalten sein sollten. Das Ersetzten des Wallpaper funktioniert hier nur mit einem Gnome Desktop. Solltest du eine andere Desktopumgebung benutzten, musst du die letzte Zeile für dein System anpassen.

UPDATE: Nach einigen kleinen Problemen habe ich das Bash-Script noch einmal überarbeitet. Probleme mit cron dürften nun behoben sein. Durch das Einrichten eines Shortcuts (via ‚gnome-keybinding-properties‘) kann der Hintergrund noch schneller gewechselt werden:

Das benötigte Skript gibts wie immer in meinem git-Repository.

#!/bin/bash

# Deviant Background Changer 1.1
# by Steffen Vogel (info@steffenvogel.de)
# http://www.steffenvogel.de/2009/11/28/deviantart-wallpapers/

# Path to save downloaded images
BG_PATH="/home/steffen/backgrounds"

# RSS Feed to fetch images from
RSS="http://backend.deviantart.com/rss.xml?q=boost%3Apopular+in%3Aphotography+max_age%3A8h&type=deviation&offset=0"

# random pool size
POOL_SIZE=10

GCONF_URL="/desktop/gnome/background/picture_filename"

# checks if window manager is running
if [[ $(ps -U $(whoami) -F | grep gnome-terminal | wc -l) > 1 ]] ; then

 # get dbus socket address
 export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS= /proc/$(pgrep -u "$(whoami)" gnome-session)/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')

 # fetch images
 wget --user-agent Mozilla/4.0 -q -O - "$RSS" | grep -o '' | grep -E -o -m 5 "http://.*.(jpg|png|jpeg|gif)" | xargs wget -q -N -P  "$BG_PATH" --user-agent Mozilla/4.0

 # get old image
 OLD_BG=`gconftool-2 --get $GCONF_URL`
 NEW_BG=$OLD_BG

 until [[ $OLD_BG != $NEW_BG ]]; do
  # choose new image
  NEW_BG="$BG_PATH/`ls -tr1 $BG_PATH | tail -$POOL_SIZE | head -$((($RANDOM%($POOL_SIZE-1))+1)) | tail -1`"
 done

 # set new image
 gconftool-2 --type String --set $GCONF_URL "$NEW_BG"
 echo $NEW_BG
fi

Mit ‚crontab -e‘ kannst du dann noch einen Cron Job hinzufügen, der dein Bild alle 10 Minuten wechselt:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h  dom mon dow   command
*/10 * * * * deviant-background-changer

Viel Spaß und nie mehr Langeweile! 🙂

From_my_memory_____1_by_my_shots

Ein Gedanke zu „deviantART Wallpapers“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.