
De mest nerdete Mac-brukerne koser seg rett som det er i terminalen hvor man kan hente ut detaljert og interessant informasjon både om maskinen og andre ting fra servere og resten av internett.
Visste du at du kan få denne informasjonen direkte på skrivebordet? GeekTool sørger for dette og mer til.
Denne artikkelen er tidligere publisert på Mac1.
Det finnes tilnærmet likt uendelige muligheter i terminalen. Alt fra oppetid og overvåkning av nettverks- og prosessorbruk til værmelding og kalender kan man hente ut med enkle skripts. Og dermed kan også GeekTool vise det på skrivebordet.
GeekTool er gratis og installeres som et systemvalg og krever ikke plass i Docken eller menylinjen.
Alt som vises med GeekTool kan tilpasses med tekstfarge, bakgrunnsfarge, størrelse, gjennomsiktighet, font og plassering på skjermen.
Det er tre typer elementer GeekTool kan vise på skrivebordet:
File viser innholdet i tekstfiler. Praktisk for loggfiler så du alltid vet hva som skjer «under panseret». Loggfiler finner man i /private/var/log.
Shell er utvilsomt den kraftigste delen av GeekTool. Den viser outputen av et hvilket som helst shell-skript.
Image viser bilder. Det kan være både lokale bilder, som for eksempel en tilfeldig løkke av bilder fra en mappe, eller bilder fra nettet. Kan med hell brukes til tegneserier og overvåkning av servere.
GeekTool bruker veldig lite ressurser, men enkelte skripts krever mer av din maskin. Derfor er det en fordel å ha lav oppdateringsfrekvens slik at skriptet ikke kjører hyppigere enn nødvendig. Hvor ofte det kjøres bestemmer du under valget «Refresh every…». For å hindre skripts i å fortsette å kjøre om de ikke fullføres kan man sette «Timeout» til et sekund eller to. Kjør gjerne kommandoen i terminalen (Programmer/Verktøy) på forhånd for å se hvordan outputen blir og hvor lang tid den tar å fullføre.
Eksempler på bruk
Fra øverst til høyre mot nederst til venstre:
Værbilde fra Yahoo Weather
Dette er egentlig to elementer. Et usynlig som henter ned bildet fra Yahoo sin vær-RSS (tilpass til ditt sted ved å endre http://weather.yahoo.com/norway/oslo-fylke/oslo-862592/ til ditt adressen for ditt sted):
curl --silent -o /tmp/weather.html http://weather.yahoo.com/norway/oslo-fylke/oslo-862592/?unit=c; curl --silent -o /tmp/weather.png $(grep "div\ class=\"forecast-icon\"\ style=\"background:url" /tmp/weather.html| awk -F"'" '{ printf $2 }');
Det andre elementet er en bilderamme som viser det nedlastede bildet fra forrige skript. Bildeadressen er file://localhost/tmp/weather.png.
Værmelding
Henter gjeldende temperatur og vær for ønsket sted. Bytt ut NOXX0029 med riktig kode for ditt sted. Koden finner du i RSS-feeden for ditt sted på Yahoo Weather.
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=NOXX0029&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>//'
Nettverksnavn
Viser navn på Trådløst nettverk.
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk '/ SSID/{print "SSID: " $2}'
Intern IP
Dette er litt avhengig av nettverksporter på din maskin. Det kan hende du må bytte ut en0 med en1 eller liknende.
ifconfig en0 | grep "inet" | grep -v 127.0.0.1 | tail -1 | awk '{print "Intern IP: " $2}'
Ekstern IP
curl --silent http://checkip.dyndns.org | awk '{printf "Ekstern IP: "$6}' | cut -f 1 -d "<"
Ledig plass på harddisken
Denne kan gjentas om du har flere disker. Bytt ut disk0s2 med det som passer. Finn ut disknavnet ved å gi kommandoen df -hl i terminalen.
df -hl | grep 'disk0s2' | awk '{print $4"/"$2" ledig ("$5" brukt)"}'
Papirkurvstørrelse
du -sh ~/.Trash/ | awk '{print "Papirkurv: " $1}'
Oppetid
uptime | awk '{sub(/[0-9]|user\,|users\,|load/, "", $6); sub(/mins,|min,/, "min", $6); sub(",", "min", $5); sub(":", "t ", $5); sub(/mins,|min,/, "min ", $4); ; sub(" t ", " t", $4); sub(/day,/, "dag ", $4); sub(/days,/, "dager ", $4); sub(":", "t ", $3); sub(",", "min ", $3); print $3 $4 $5 $6 " våken"}' | sed -e 's/1days/1day /g' -e 's/min1/min/g' -e 's/usersmin//g'
Nettverksbruk
Også her kan det hende må du bytte ut en0 med det som passer for deg.
INTERFACE=en0;
SAMPLE_A=(`/usr/sbin/netstat -ib | awk "/$INTERFACE/"'{print $7" "$10; exit}'`);
sleep 1;
SAMPLE_B=(`/usr/sbin/netstat -ib | awk "/$INTERFACE/"'{print $7" "$10; exit}'`);
BANDWIDTH_USAGE=(`echo "2k ${SAMPLE_B[0]} ${SAMPLE_A[0]} - 1024 / p" "${SAMPLE_B[1]} ${SAMPLE_A[1]} - 1024 / p" | dc`);echo " Ned: ${BANDWIDTH_USAGE[0]} Kb/s Opp: ${BANDWIDTH_USAGE[1]} Kb/s";
Batteristatus
Viser strømkilde med batterisykluser og prosentandel strøm som gjenstår.
my_ac_adapt=`ioreg -w0 -l | grep ExternalConnected | awk '{print $5}'`
if [ "$my_ac_adapt" == "Yes" ]
then
echo "Strøm : Ekstern"
else
cur_power=`ioreg -w0 -l | grep CurrentCapacity | awk '{print $5}'`
max_power=`ioreg -w0 -l | grep MaxCapacity | awk '{print $5}'`
bat_percent=`echo "scale=2;$cur_power / $max_power" | bc`
bat_percent=`echo "$bat_percent * 100" | bc | sed 's/.00//'`
cyc_count=`ioreg -w0 -l | grep "Cycle Count" | awk 'BEGIN { FS = "=" } ; {print $8}' | awk 'BEGIN { FS = "}" } ; {print $1}'`
echo "Strøm : Batteri ($bat_percent%)"
echo "Sykluser : $cyc_count"
fi
Sider med inspirasjon og skripts
- 15 GeekTool desktop inspirations for the weekend
- Ultimate GeekTool Setup – Pimp Your Desktop Part 2
- Examples or how to display whatever you need on your desktop in Mac OS X
- Put GMail on Your Desktop with GeekTool
- Geeklets – Share and vote on Geeklets for GeekTool
Det finnes en fin tråd på Mac1s forum om GeekTool: Geektool scripts
PS: Skrivebordsbakgrunnen er mitt eget bilde og kan lastes ned på deviantArt med en CC-lisens
.



