Advertisements

GeekTool: how to give your Mac’s desktop a bit of style [UPDATED]

Per la versione in italiano scendi a fine post.

Every Mac User know what the dashboard is. Though if you want to go even further than widgets, you can use GeekTool, a free utility that gives your desktop a bit of art. As an example, here’s my work after an hour:

Sounds good? Then let’s start! But before, I have to introduce GeekTool.
There are three type of geeklets (A geeklet can be a command):

  • File
  • Image
  • Shell (To use it, you have to copy and paste the commands in this tutorial in the “Command” field).

Plus, remember that you have to set a refresh time (in the “Refresh” field) for geeklets that requires to be updated on a regular basis like the clock, or not like a period.
Ok, now you’re ready to go!

A simple period

echo “write here”

It may be a stupid command, but I found it really helpful!

Clock

date “+%H:%M.%S”

A clock with hours, minutes and seconds.

Date

date

Write this command if you want the clock plus the current date. If you want to have just a single value here are some:

Only the day:

date+%d

Only the name of the day:

date+%A

Only the month:

date+%B

Weather

For the weather it’s a bit different.
First you have to put a shell geeklet with the following code (the link in the code have to be substituted with your own city and has to be from yahoo!).

curl –silent “http://it.meteo.yahoo.com/italia/lombardia/milano-718345/” | grep “forecast-icon” | sed “s/.*background\:url(\’\(.*\)\’)\;\ _background.*/\1/” | xargs curl –silent -o /tmp/weather.png\

It won’t happen anything, but that’s fine.
Now you can get the image. Now drag the “Image” geeklet on your desktop and write in the path:

file:///tmp/weather.png

If you want to get the live forecast but not as an Image, write this in a shell command. For the link it’s different: the following is a RSS link. You need to change the final code (ITXX0042) with the one of your city (you can find it just by clicking the RSS button and looking at the URL bar in the browser).

curl –silent “http://xml.weather.yahoo.com/forecastrss?p=ITXX0042&u=c&#8221; | 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

RAM status

top -l 1 | awk ‘/PhysMem/ {print “[RAM]\t\tUsed: ” $8 ” Free: ” $10}’

With this you can get at a glance the current satus of the RAM.

Battery

#!/bin/bash

maxcap=`ioreg -l | grep Capacity |awk ‘/MaxCapacity/{print $5}’`
curcap=`ioreg -l | grep Capacity |awk ‘/CurrentCapacity/{print $5}’`

curcap=`echo $curcap*1000|bc`
proc=`echo $curcap / $maxcap |bc`;

len=`echo ${#proc}`;

proc_num=${proc:0:3}
proc_dec=${proc:3:4}

proc_num_len=`echo ${#proc_num}`;

if [ $proc_num_len == “3” ]; then
if [ $proc_num != “100” ]; then
proc_num=${proc:0:2}
proc_dec=${proc:2:3}
fi
fi

echo “Battery: ” $proc_num.$proc_dec%

This can be used only on MacBooks.

Hard disk status

df -hl | grep ‘disk0s2’ | awk ‘{print “HD: ” $4″/”$2″ free (“$5″ used)”}’
Copy and paste it to get the status of the Hard Disk (free and used space).

Uptime

uptime | awk ‘{print “[Uptime]\t\t” $3 ” ” $4 ” ” $5 }’ | sed -e ‘s/.$//g’

This controls for how long the Mac is on and the number of the logged in users.

RSS

URL=”http://www.repubblica.it/rss/tecnologia/rss2.0.xml”
maxLength=”200″
start=”3″
end=”8″
curl –silent “$URL” |
sed -e :a -e ‘$!N;s/\n//;ta’ |
sed -e ‘s/<title>/\
<title>/g’ |
sed -e ‘s/<\/title>/<\/title>\
/g’ |
sed -e ‘s/<description>/\
<description>/g’ |
sed -e ‘s/<\/description>/<\/description>\
/g’ |
grep -E ‘(title>|description>)’ |
sed -n “$start,$”‘p’ |
sed -e ‘s/<title>//’ |
sed -e ‘s/<\/title>//’ |
sed -e ‘s/<description>/ /’ |
sed -e ‘s/<\/description>//’ |
sed -e ‘s/<!\[CDATA\[//g’ |
sed -e ‘s/\]\]>//g’ |
sed -e ‘s/</</g’ |
sed -e ‘s/>/>/g’ |
sed -e ‘s/<[^>]*>//g’ |
cut -c 1-$maxLength |
head -$end |
sed G |
fmt

With this, you can get live RSS in a geeklet (just change the link in the first line).

These are just  few of the commands that can be used, on the web you can find tons of the to better suit your needs.

In Italiano

Tutti gli utenti Mac sanno cosa sia la dashboard: ovvero quello spazio pieno di widget alla portata di tutti. Ma se volete spingervi oltre e dare un tocco “d’arte” alla scrivania del Mac, abbiamo bisogno di GeekTool, una piccola (si fa per dire…) applicazione disponibile gratuitamente sul Mac App Store. Ieri dopo aver smanettato con gli script (ma cosa sono?) e i comandi della shell UNIX (…?) ho ottenuto questo splendido (a mio parere) risultato:

[IMMAGINE SOPRA]
Volete anche voi un desktop così? Allora ecco una guida facile da seguire alla perfezione (onde evitare problemi). Prima di iniziare: per aggiungere un geeklet (così si chiamano quei “così” in alto a sinistra per chi non lo sapesse), dovete semplicemente trascinarlo sul desktop, ed ecco quindi che potete partire. I geeklet sono di tre tipi:
•    File
•    Image
•    Shell (Per aggiungere un comando dovete inserire nel campo “command” il codice fornito in questa guida)

[COMANDI SHELL]
Premessa: per ognuno dei comandi dovete impostare nel campo “refresh” un tempo in secondi per stabilire ogni quanto il geeklet deve essere aggiornato. Consiglio a tutti di mettere 1 secondo (tranne per quanto riguarda il comando “echo” che non ha bisogno di essere aggiornato).

SCRITTA
echo “qui scrivete una frase”

Sembra una stupidaggine, ma può tornare molto utile! In pratica vi permette di scrivere una frase statica da far comparire sul desktop. Semplice no?

OROLOGIO
date “+%H:%M.%S”

Un semplice orologio con i minuti e secondi in formato 24h.

CALENDARIO
cal

Un piccolo calendario con i giorni del mese attuale.

DATA

date

Scrivete questo semplice codice se volete data e orologio completi insieme. Oppure:

Solo il numero del giorno:
date +%d

Solo il nome del giorno:
date +%A

Solo il nome del mese:
date +%B

METEO
Per il meteo la cosa è più complessa. Innanzitutto dovete aggiungere una shell e inserire il seguente comando (il link di Yahoo! va cambiato con quello della propria città di appartenenza), nel mio caso Milano:

curl –silent “http://it.meteo.yahoo.com/italia/lombardia/milano-718345/&#8221; | grep “forecast-icon” | sed “s/.*background\:url(\’\(.*\)\’)\;\ _background.*/\1/” | xargs curl –silent -o /tmp/weather.png\

Non comparirà nulla nel box della shell. Ora trascinate una Image e inserite nel campo URL:

file:///tmp/weather.png

Fatti questi passaggi avrete l’immagine del meteo della vostra città. Se volete però anche la scritta con situazione e temperatura inserite:

curl –silent “http://xml.weather.yahoo.com/forecastrss?p=ITXX0042&u=c&#8221; | 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

Qui per il link la storia è diversa. Dovete collegarvi al sito di Yahoo! Weather e trovare la vostra città. Infine passate all’RSS della pagina e nel campo indirizzo del browser sostituite il codice ITXX0042 (codice di Milano) con quello della vostra città.

RAM
top -l 1 | awk ‘/PhysMem/ {print “[RAM]\t\tUsed: ” $8 ” Free: ” $10}’
Comando per avere a colpo d’occhio lo stato della RAM del computer.

BATTERIA
#!/bin/bash

maxcap=`ioreg -l | grep Capacity |awk ‘/MaxCapacity/{print $5}’`
curcap=`ioreg -l | grep Capacity |awk ‘/CurrentCapacity/{print $5}’`

curcap=`echo $curcap*1000|bc`
proc=`echo $curcap / $maxcap |bc`;

len=`echo ${#proc}`;

proc_num=${proc:0:3}
proc_dec=${proc:3:4}

proc_num_len=`echo ${#proc_num}`;

if [ $proc_num_len == “3” ]; then
if [ $proc_num != “100” ]; then
proc_num=${proc:0:2}
proc_dec=${proc:2:3}
fi
fi

echo “Battery: ” $proc_num.$proc_dec%

Script che permette di controllare la percentuale di carica della batteria (Solo MacBook)…

STATO DELL’HARD DISK
df -hl | grep ‘disk0s2’ | awk ‘{print “HD: ” $4″/”$2″ free (“$5″ used)”}’
Script che permette di controllare lo spazio disponibile sull’HD del computer.

UPTIME
uptime | awk ‘{print “[Uptime]\t\t” $3 ” ” $4 ” ” $5 }’ | sed -e ‘s/.$//g’
Script che controlla da quanto tempo è acceso il Mac e gli utenti connessi.

RSS

URL=”http://www.repubblica.it/rss/tecnologia/rss2.0.xml”
maxLength=”200″
start=”3″
end=”8″
curl –silent “$URL” |
sed -e :a -e ‘$!N;s/\n//;ta’ |
sed -e ‘s/<title>/\
<title>/g’ |
sed -e ‘s/<\/title>/<\/title>\
/g’ |
sed -e ‘s/<description>/\
<description>/g’ |
sed -e ‘s/<\/description>/<\/description>\
/g’ |
grep -E ‘(title>|description>)’ |
sed -n “$start,$”‘p’ |
sed -e ‘s/<title>//’ |
sed -e ‘s/<\/title>//’ |
sed -e ‘s/<description>/ /’ |
sed -e ‘s/<\/description>//’ |
sed -e ‘s/<!\[CDATA\[//g’ |
sed -e ‘s/\]\]>//g’ |
sed -e ‘s/</</g’ |
sed -e ‘s/>/>/g’ |
sed -e ‘s/<[^>]*>//g’ |
cut -c 1-$maxLength |
head -$end |
sed G |
fmt

nella prima riga mettete RSS che più vi aggrada. 
Nella seconda, terza e quarta decidi lunghezze, rigo di partenza e quello finale.

Questi però sono solo alcuni dei comandi che si possono usare, e in rete potete trovarne molti altri che più vi aggradano. Buon divertimento! 😀

Advertisements

Tags: , ,

4 responses to “GeekTool: how to give your Mac’s desktop a bit of style [UPDATED]”

  1. Salvatore says :

    sei veramente in gamba … continua così! ciao Salvatore

  2. Francesco says :

    Ciao…complimenti per la guida…ho qualche difficoltà con l’immagine meteo…non funziona lo script (pallino rosso del feedback)…mi puoi aiutare o eseguito quello che hai fatto tu…ma non funziona…

    • Riccardo Manta says :

      Confermo che non funziona. Dopo svariati tentativi (su più di un Mac) sono andato sul sito di Yahoo! Weather per riprendere il link RSS (nel caso fosse cambiato nel tempo) e ho scoperto che questi non esistono più poiché il sito è stato completamente rinnovato rispetto alla prima pubblicazione dell’articolo (febbraio 2012); periodo in cui il geeklet era ancora funzionante.
      L’unico che sembra funzionare è quello della scritta del meteo, che mi indica ancora il meteo attuale in base al codice della città (ITXX0042 per Milano) “http://xml.weather.yahoo.com/forecastrss?p=ITXX0042&u=c”.
      Mi dispiace non poterti essere di aiuto, ma a mio avviso il modo non esiste più. 😦

%d bloggers like this: