Come cambiare automaticamente lo sfondo del desktop
Published 2012-09-30
Questo tutorial spiega come cambiare automaticamente lo sfondo del desktop in Ubuntu.In Ubuntu Unity esiste già uno sfondo del desktop dinamico che cambia durante
il giorno selezionando le immagini della directory
/usr/share/backgrounds
, però dopo un pó mi sono stufato di vedere
sempre le stesse immagini così ho deciso di utilizzare la mia collezione di
immagini scaricate dal sito APOD,
Astronomy Picture of the Day.
Inizialmente credevo che bastasse impostare la directory in System
Settings -> Appearance però ho scoperto che è solo possibile
selezionare la directory ~/Pictures
, mentre io volevo solo la
subdirectory ~/Pictures/Wallpapers
. Avrei potuto risolver il mio
problema editando il file
/usr/share/backgrounds/contest/precise.xml
, pero questo mi avrebbe
obbligato ad aggiornarlo manualmente ogni volta che scarico una nuova immagine
da APOD, così ho
dovuto risolvere questo problema a modo mio.
La idea è abbastanza semplice:
- selezionare una immagine a caso nella directory
~/Pictures/Wallpapers
- cambiare lo sfondo del desktop dalla linea di comando
- crear un cron job per cambiare lo sfondo ogni 15 minuti
Selezionare una immagine a caso
Questo si risolve facilmente con un paio di linee scritte in Python:
import os,random
return random.choice(os.listdir('/home/your-name/Pictures/Wallpapers'))
Puoi copiare dal mio repository in GitHub lo script migliorato
random-file, nella tua /home/your-name/bin
directory.
Cambiare lo sfondo del desktop dalla linea di comando
Per cambiar lo sfondo del desktop dalla linea di comando si usa il comando
gsettings
:
$ gsettings set org.gnome.desktop.background picture-uri "file:///path/to/wallpaper.jpg"
Nota che gsettings
è un comando nuovo introdotto con GNOME3 e
Unity, se hai il vecchio GNOME2 allora devi usar gconftool
:
$ gconftool-2 --type=string --set /desktop/gnome/background/picture_filename /path/to/wallpaper.jpg
Per sapere quale versione di Gnome stai usando esegui:
$ gnome-session --version
Puoi mettere questo comando in uno script bash però non funzionerà se lo chiami da un cron job perché cron ha bisogno che sia settata la variabile DBUS_SESSION_BUS_ADDRESS.
Puoi copiar lo script corretto
change-wallpaper dal mio repository in GitHub
nella tua directory /home/your-name/bin
.
Siccome io uso Ubuntu 12.04, nel mio script c'è il comando
gsettings
, se scrivi una versione per Gnome2, sentiti libero di
fare un "fork" di
dd-scriptse mandami una "pull request".
Crear un Cron Job
Adesso solo devi dire al tuo sistema di cambiare il desktop ogni 15 minuti creando un cron job. Edita la lista dei cron jobs con il comando:
$ crontab -e
Quindi aggiungi queste linee:
# Edit this file to introduce tasks to be run by cron.
#
# m h dom mon dow command
*/15 * * * * /home/your-name/bin/change-wallpaper
Perfetto! Goditi i tuoi nuovi sfondi del desktop!
Danilo
Referenze: AskUbuntu.com