Script bash: cambiare wallpaper in gnome non è mai stato così facile!

Settembre 20, 2007

Recentemente stavo cercando un programmino (o uno script in qualsivoglia linguaggio) per ottenere in gnome una delle funzionalità più invidiate di KDE: il cambiamento automatico del desktop ogni tot di tempo.

Preso dallo sconforto, dopo aver constatato che le 3-4 soluzioni da me provate non funzionavano per i più disparati motivi, ho deciso di rimboccarmi le maniche e scrivere di mia mano uno script adeguato. Eccolo qua sotto, per il vostro gaudio!

#!/bin/zsh
bgfiles=("$@")
TIME=${TIME:-300}
bg="$bgfiles[$(($RANDOM % ${#bgfiles}))]"
gconftool-2 -s /desktop/gnome/background/picture_filename "$bg" -t string
while sleep $TIME; do
        bg="$bgfiles[$(($RANDOM % ${#bgfiles}))]"
        gconftool-2 -s /desktop/gnome/background/picture_filename "$bg" -t string
        logger -t bgskia "Background set to $bg"
done

Vediamo nel dettaglio come si comporta:

- la prima riga contiene le informazioni sul tipo di script;

- la seconda riga indica allo script che l’array dei files tra cui scegliere lo sfondo dovrà essere costruito partendo dai parametri passati allo script;

- la terza riga controlla una variabile di ambiente TIME che conterrà il delay in secondi tra ogni cambiamento di wallpaper; se questa non esiste, la crea e la setta a 300 (5 minuti);

- la quarta riga sceglie il primo wallpaper come uno a caso tra quelli passati come argomenti allo script;

- la quinta riga setta il wallpaper di gnome mediante lo strumento gconftool-2;

- nelle righe da 6 a 10 vengono ripetuti i due passi precedentemente descritti con intervallo di TIME secondi, oltre ad aggiungere in syslog una stringa che indica quale file è stato settato come wallpaper.

Un esempio? Presto fatto! Salvate lo script dove volete (ad esempio nella vostra home) e lanciatelo come segue:

./background_changer.sh /cartella_degli_sfondi/{*.jpg,*.png,*.bmp} &

Spero vi piaccia, fatemi sapere che ne pensate!


Entry Filed under: programmazione. .

3 Comments Add your own

  • 1. blm  |  Novembre 21, 2007 at 4:40 pm

    il proceso e’ molto pesante?!? si puo’ pensare di fare un desktop animato con quiesto script??

    Replica
  • 2. MetalElf0  |  Novembre 22, 2007 at 7:59 pm

    No, il processo non è “troppo” pesante, se le immagine sono già salvate lui deve solo caricarle in memoria e visualizzarle a schermo. Un desktop animato però credo sia eccessivo, visto che comunque l’operazione di caricare in memoria un’immagine comporta di per sè un certo tempo. Fai qualche prova mettendo il delay a 1 secondo, poi fammi sapere :)

    Replica
  • 3. blm  |  Novembre 29, 2007 at 10:56 am

    si, hai ragione, fa troppo fatica a caricare. solo con 3 immagini in 3 secondi salta quella in mezzo.
    grazie mille!!

    Replica

Leave a Comment

hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

Settembre: 2007
L M M G V S D
« Ago   Dic »
 12
3456789
10111213141516
17181920212223
24252627282930

Most Recent Posts