Come cambiare automaticamente lo sfondo del desktop

dd logo

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-scripts e 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

Fonte: Source

Visited 3 times, 1 visit(s) today
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.