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
Leave a Comment
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
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??
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
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!!