Ich gestehe ein: Mit den folgenden Screenshots meines Desktops gewinne ich keinen Blumentopf. Aber das Ausschmücken kann später noch erfolgen und erstmal soll die Sache eines sein: Funktional:

GeekTool, was ich hier vorstellen möchte, ist ein spitze PreferencePane (Systemerweiterung), um Informationen direkt auf Desktop-Ebene darzustellen.

Server-Uptime und andere Systeminformationen, Uhrzeit, Kalender, Wetter und Temperatur, Posteingang,... klar, für alles gibt es ein Widget oder eine Programm, welches sich in der Menüleiste einnistet, aber hat man mit Bash- und Perl-Skripten kein Problem, kann man mi dieser einen Systemerweiterung seiner Phantasie freien Lauf lassen.

Ich selbst lasse auf meinen Computern ein Bild der Außenkamera und ein paar Temperatur-Informationen anzeigen, auf meinem Media-macMini den Fortschritt des laufenden Filmes.

Rechts der Screenshot meines Laptop-Desktops mit Außentemperatur, Webcam-Sicht vor die Haustüre (oh, noch Schnee!) und Innentemperaturen, rechts daneben Uptime von Laptop und Server.

Alles in allem 8 verschiedene Geeklets.

Geeklets sind sozusagen Templates, die sowohl das zur Informationsbeschaffung nötige Skript, wie auch Textgröße, Position auf dem Bildschirm, etc beinhalten. 

 

Und hier ein Bildschirmauschnitt meines Media-MacMinismit Uhr (die allerdings SimpleFloatingClock, ein eigenes Programm ist und nicht von GeekTool dargestellt wird), in die ich den Fortschritt des aktuell in DVD-Player oder VLC laufenden Filmes eingebaut habe (dicke Außenlinie), und Innen-/Außentemperatur darunter.

Fortschritt des aktuell laufenden Filmes...!?
Es hatte mich immer "gestört", ab und an kurz über da Trackpad zu streichen, um zu sehen, wie lange der Film noch dauert (besonders bei langweiligen Filmen macht man sowas ja öfters). Dank GeekTool nun unaufdringlich zusammen mit der aktuellen Uhrzeit zu sehen.
Oh, Zeit in's Bett zu gehen...aber Film ist leider erst zu Dreiviertel fertig.

 

 

Meine eigenen Geeklets will ich im Folgenden kurz vorstellen (besonders der Filmstatus ist etwas "tricky"), weitere interessante Geekelts und Instirationen findet ihr bei macosxtips.co.uk (eine umfangreiche, aber zugegebenermaßen ziemlich unübersichtliche Seite).

 

GeekTool nutzen

Man öffne die Systemeinstellungen und danach die PrefPane "GeekTool" (ganz rechts).

GeekTool selbst (rechts) ist ziemlich übersichtlich. 

Es besteht eigentlich nur aus den drei Icons "File", "Image"  und "Shell". Man möchte meinen, der große weiße Bereich ließe sich noch durch weitere Möglichkeiten, die sich vielleicht durch Extensions erweitern lassen, füllen, allerdings habe ich noch nie etwas davon gehört, dass es für GeekTool irgendwelche Erweiterungen gibt.

Um GeekTool nun zu nutzen, zieht man eines der drei Icons "File", "Image"  oder "Shell" an eine freie Stelle auf dem Desktop und ein rechteckiger Platzhalter erscheint. Dazu noch die passende Bearbeiten-Palette:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Für jeden Geeklet-Typ auf der Palette vorhanden: (Optionale) Benennung, Größe und Position des Geeklets und die Möglichkeit, es einer Gruppe zuzuordnen (wobei man die Gruppen im GeekTool-Hauptfenster erstellen kann).

Im Fall der Datei kann man aus einer Auswahl bestimmte Logdateien auswählen, da in dem Geeklet angezeigt werden (falls man irgendeine bestimmte Log-Datei immer im Auge haben will), aber auch jede beliebige andere Textdatei von der Festplatte auswählen, die darauf auf dem Desktop dargestellt wird und im Falle einer Änderung auch aktualisiert wird.

Im Fall des Bildes gibt man den Pfad zur Bilddatei an – sei es ein lokaler Pfad zu einer Datei auf der Festplatte oder eine Internetadresse – und gebe, falls gewünscht, einen Aktualisierungsintervall an. Dies macht natürlich Sinn, wenn man zu Ãœberwachungszwecken das Bild einer Webcam auf den Desktop zaubern will.

Interessant wird es beim Icon Shell: Hier lässt sich die Ausgabe eines Kommandos, wie zum Beispiel uptime, auf dem Desktop anzeigen.

 

Das "Hallo Welt"-Geeklet für Unix-Nerds: Uptime

Wir ziehen das Shell-Icon auf einen leeren Bereich des Desktops und geben in die Bearbeiten-Palette unter Command uptime ein.

Darauf sollte man eine Ausgabe wie rechts gezeigt zu sehen bekommen.

Den Aktualisierungsintervall kann man noch auf 60s setzen, so wird die Laufzeit des Computers minütlich neu errechnet.

Das ganze sieht auf dem Screenshot von meinem Laptop weiter oben alles etwas lesbarer aus und zeigt zudem die Laufzeit meines Servers noch mit an. Dazu habe ich den Uptime-Befehl etwas aufgebohrt:

 

echo "Uptime Laptop c"
uptime | sed -e "s/:/ /2" | sed -e "s/,/ /2" | awk '{print $3 " Tage, " $5 ":" $6 "h"}'
echo "Uptime Server c"
ssh apfelz@192.168.1.1 uptime | sed -e "s/:/ /2" | sed -e "s/,/ /2" | awk '{print $3 " Tage, " $5 ":" $6 "h"}'

(Das lasse ich jetzt mal so ohne weitere Erklärungen stehen)
 

Die Sache mit der Uhr

Sollte sich jemand für die am Anfang des Artikels präsentierte Fortschrittsanzeige für VLC/DVD-Player interessieren: Hierzu musste ich den einen oder anderen Kniff anwenden.

Die ganze Sache besteht aus einem Haufen Bilder, einem Applescript und zwei Geeklets.
Ihr könnt euch sämtliche Dateien hier herunterladen.

Den Ordner mit allen enthaltenen Dateien legt ihr am besten in irgend ein Verzeichnis, wo er nicht im Weg ist – ich hatte Library/Application Support/GeekTool gewählt.

Die beiden Geeklets fortschritt1.glet und fortschritt2.glet öffnet ihr mit einem Texteditor und passt jeweils den Pfad an. Dasselbe gilt für das Applescript fortschritt.scpt und hier merke ich, dass es damals recht spät war, als ich das alles gebastelt hatte: Den Pfad zum Ordner muss man zweimal angeben. Dies liegt daran, dass der Ordner "Application Support" ein Leerzeichen im Titel hat. Ein einer Stelle des Skripts gab es ein Problem mit dem Leerzeichen, an einer anderen ein Problem, wenn man das Leerzeichen mit escapte. Deshalb habe ich den Pfad einmal normal und einmal escaped eingetragen. Fühlt euch frei, dies zu einer menschlicheren Tageszeit zu verbessern oder schieb die ganzen Dateien gleich an einen Ort ohne Überordner mit Leerzeichen. 

Was passiert hier nun genau?

Das erste Geeklet fortschritt1.glet macht nicht mehr, als im 60-Sekunden-Takt das Applescript aufzurufen.

Das Applescript wiederum prüft, ob der DVD-Player offen ist und dort ein Film läuft oder – sollte dies nicht der Fall sein – ob VLC offen ist und dort ein Film läuft.
In beiden Fällen wird – sofern ein Film läuft – errechnet, wieviel Prozent des Filmes bereits rum sind. Nun dupliziert das Skript eines der 33 Bilder 0.png bis 32.png (die jeweils 0/32 bis 32/32 eines Kreises darstellen) und benennt dieses display.png

Das zweite Geeklet fortschritt2.glet zeigt nun genau dieses Bild an.

Dadurch, dass sowohl nur all 60 Sekunden der Filmfortschritt errechnet wird, wie auch nur all 60 Sekunden das Bild des Fortschritt-Kreises aktualisiert wird, kann es im schlimmsten Fall zu einer Abweichung von 2 Minuten zur tatsächlichen Film-Restlänge kommen. Dies könnte man kompensieren, indem man beide Geeklets öfters als 60 Sekunden aktualisieren lässt.

Diese Skripte lassen sich natürlich noch auf jeden weiteren Skriptbaren Player (wie etwa den QuickTime Player) erweitern.