6 set 2009

Visualizzare data, ora e tempo atmosferico sul desktop con GeekTool


Gli utenti linux possono vantarsi di avere una splendida applicazione, Conky, in grado di mostrare direttamente sul proprio desktop alcuni parametri di monitoraggio del sistema da tenere sempre sotto controllo. Chi lo conosce già saprà di cosa parlo quando ricordo le giornate intere passate a cercare di configurare a dovere il .conkyrc per avere il risultato perfetto... A noi mac-user viene incontro GeekTool che fa le stesse identiche cose avvalendosi però di un'interfaccia grafica leggermente più semplice. In questo articolo vedremo come fargli stampare sul desktop le informazioni di data, ora e tempo atmosferico della città che preferiamo. Armatevi quindi di tanta buona pazienza e cominciamo!

[NB: mentre scrivo l'articolo è già stata pubblicata la versione 3 RC5 di GeekTool, tuttavia, per questo scopo io ho utilizzato la versione stabile 2.1.2 a causa dei cambiamenti drastici fatti nella nuova tra interfaccia e file di configurazione incompatibili con le vecchie versioni. Voi siete liberi di usare la versione che vi convince di più, le impostazioni sono esattamente le stesse.]

Sarà necessario suddividere il nostro obiettivo in tre passi: data, ora, previsioni atmosferiche, che svilupperemo singolarmente.

Data
La data sarà formata da tre componenti, uno per il giorno della settimana [day], uno per il mese [month] e uno per il giorno in forma di numero [date]. Creiamo quindi tre item su GeekTool e settiamo le proprietà come script shell con le seguenti stringhe:
day: date +%A (font=Futura-Med-27 | refresh=3600)
month: date +%B (font=Futura-Med-36 | refresh=3600)
date: date +%d (font=Futura-Cond-72 | refresh=3600)

Ora
L'ora è composta da due pezzi, uno per l'orario [time] e uno per am-pm [ampm], creiamo quindi due item e li impostiamo come segue:
time: date +"%I:%M" (font=Futura-Cond-72 | refresh=30)
ampm: date +"%p" (font=Futura-Cond-Med-48 | refresh=3600)

Previsioni atmosferiche
Infine la ciliegina sulla torta sono le previsioni atmosferiche che porteranno via un pò più di tempo ma ne vale decisamente la pena. Per questa componente abbiamo bisogno di collegarci al servizio weather di yahoo! e cercare la città di cui ci interessano le previsioni. una volta nella pagina delle previsioni abbiamo bisogno del codice identificativo della città presente nell'indirizzo. ad esempio l'indirizzo per Roma è http://weather.yahoo.com/Rome-Italy/ITXX0067/forecast.html?unit=c e il codice identificativo della località è ITXX0067.
Per questa funzione abbiamo bisogno di un primo script per prelevare le informazioni riguardo la descrizione delle condizioni atmosferiche [weather title], un secondo script che resterà nascosto e ci servirà per salvare l'immagine che rappresenta le attuali condizioni atmosferiche in /tmp/weather.png [weather curl] e infine un campo picture per la visualizzazione dell'immagine appena prelevata [weather img]. Nei primi due script dovreste sostituire YOURCITY con il codice della vostra città.
weather title:
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=YOURCITY&u=c" | grep -E '(Current Conditions:|C<BR)' | sed -e 's/Current Conditions://' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//' | tail -n1

weather curl:
curl --silent "http://weather.yahoo.com/forecast/YOURCITY.html" | grep "forecast-icon" | sed "s/.*background\:url(\'\(.*\)\')\;\ _background.*/\1/" | xargs curl --silent -o /tmp/weather.png\

weather img:
file:///tmp/weather.png


Riepilogo
Riporto qui una tabella con tutti i valori di tutti i componenti per facilitarne la lettura.

A questo punto dovreste avere un risultato simile a quello in cima all'articolo con data, ora e previsioni atmosferiche aggiornate sempre a portata di desktop!

Buon divertimento!

[ fonti: tedwise.com, iamawesome.net, lifehacker.com, macthemes2.net, volasail.com ]

4 commenti:

Adamo ha detto...

ciao, è da questa mattina che mi sono messo a smanettare con geek tool e volevo chiederti se per favore conosci i comandi per una shell che abbia le previsioni di yahoo di almeno due giorni. ho trovato in rete quelle per avere quelle del giorno es :

curl –silent “http://xml.weather.yahoo.com/forecastrss?p=YOURCITYCODE& ecc



Ma non trovo quelle per avere di almeno due giorni. Per sapere che tempo fa nella mia città mi basta aprire la finestra, mentre trovo molto utile sapere che tempo farà nei prossimi giorni. Grazie per un'eventuale risposta.

chitebbeiv ha detto...

in realtà ci ho pensato anche io a una cosa del genere e, in teoria la logica dovrebbe essere la stessa, presi i dati basta creare lo script.
in realtà ne esistono già di script solo che sono file sh fatti eseguire separatamente, mentre io sono per l'integrazione totale.
magari, se trovo un pò di tempo, provo ad accennare uno script in grado di fare quello che dici, però non ti posso promettere niente, specialmente in questo periodo...

Adamo ha detto...

grazie per la risposta. Io ho conosciuto geektool grazie a macenstein.com e sul sito del doc ho trovato questo link http://nicinabox.com/geektool/HUD-0.3.zip per uno script meteo. Lo script funziona bene il problema è che mostra i dati in farenheit e ovviamente diventa inutile. Poi cercando in giro ho anche trovato questo --> http://www.thomasupton.com/blog/?p=202

ma anche questo non è comodissimo visto che mostra le info in verticale. a me basterebbe avere le previsioni per due giorni con tanto di temperature. nulla più.

ps...non so tu , ma io son davvero ansioso di scoprire la nuova e presunta gamma portatili di gennaio. Spero proprio che i nuovi macbook pro abbiano il light peak della intel , assieme magari ad ssd e processori i7...
al quel punto cambio il mio unibody del 2008.

Adamo ha detto...

ok...dal mio ultimo post immagino si sia capito il mio grado di nerdaggine.. :-P ...