Mittlerweile gibt es allerhand nützliche Programme, um den Desktop zu verschönern. Zu den beliebtesten Vertretern dieser Riege zählen Erweiterungen, die nützliche oder auch einfach grafisch ansprechende Miniprogramme – so genannte Desklets – auf dem Desktop anzeigen. Eine der vielseitigsten Anwendungen dieser Art ist gDesklets. Die erste Release, gDesklets 0.10, erschien im August 2003 nach sechsmonatiger Planung.
Zum damaligen Zeitpunkt gab es bereits DesktopX, Konfabulator und (Super-)Karamba, die eine ähnliche Philosophie wie gDesklets vertreten. Das Problem dieser Programme war und bleibt, dass sie nur für einen Desktop oder für ein bestimmtes Betriebsssystem (Konfabulator für den Mac, DesktopX für Windows) konzipiert sind. gDesklets dagegen sollte von Anfang an auf so vielen Window-Managern bzw. Desktops wie möglich funktionieren. gDesklets braucht einen Vergleich mit der Konkurrenz nicht zu scheuen und hat in einigen Bereichen sogar die Nase vorn.
Grundsätzlich läuft gDesklets zusammen mit allen Window-Managern, die die Freedesktop-Spezifikation [1] erfüllen. Zu seinem mächtigen Funktionsumfang trägt nicht zuletzt die Tatsache bei, dass es größtenteils in Python [2] geschrieben ist. Mit dieser interpretierten, objektorientierte Programmiersprache lassen sich auch größere Projekte erstellen.
Es gibt viele Einsatzgebiete für gDesklets, von denen einige über schlichtes "Eye Candy" weit hinausgehen. So kann ein Administrator damit Systeme überwachen und gegebenfalls administrieren. Im Gnome-CVS existiert ein Presentation-Desklet, mit dem man ohne großen Aufwand Präsentationen gestalten kann. gDesklets setzen der Fantasie kaum Grenzen – und lassen sich sogar verblüffend einfach selbst erstellen (Kasten 1).
Kasten 1: Desklets selbst erstellen
Selbst unerfahrenen Programmierern gelingt es ohne größere Schwierigkeiten, einfache Desklets selbst zu erstellen. Grundlegende XML- und Python-Kenntnisse sind von Vorteil, aber nicht wirklich notwendig. Dazu ein kurzes Beispiel, das in nur drei Codezeilen ein dynamisches Desklet realisiert:
<display window-flags="sticky, above"> <label value="Mein erstes…" font="MonoSpace 1cm" color="blue" on-enter=" self.font='MonoSpace 0.5in'; self.value='Hello World'; self.color='red' " on-leave=" self.font='MonoSpace 12pt'; self.value='…Desklet'; self.color='blue' "/> </display>
Zeile ist obligatorisch – ohne <display> funktioniert das Desklet nicht. Das Tag <display> kann mehrere Attribute haben. So legt window-flags="sticky, above" fest, dass das Desklet auf jedem virtuellen Desktop und über allen anderen Anwendungen erscheinen soll.
Zeile 3 definiert zunächst ein Textfeld mit dem Anfangswert "Mein erstes…", das beim Starten des Desklets erscheint. Als Schrift dient MonoSpace in der Ausgabegröße 1cm. Alternativ können Sie die Größe auch in Pixel, Zoll, Punkt oder als Prozentangabe festlegen. Näheres dazu finden Sie in Appendix A des gDesklets-Entwicklerhandbuchs [9].
Alle modernen GUI-Bibliotheken arbeiten ereignisbasiert: Ein Tastendruck oder eine Mausbewegung lösen bestimmte Ereignisse aus. Auf einige davon reagieren die Anweisungen on-enter und on-leave in Zeile 3.
Bewegen Sie den Mauszeiger in das Desklet(-Fenster), löst dies das on-enter-Ereignis aus. Die Textgröße ändert sich auf einen halben Zoll, als Text erscheint nun "Hello World" in roter Farbe. Dabei besagt der Zusatz "self" vor dem jeweiligen Attributnamen, dass sich die Anweisung auf das label-Tag selbst bezieht. Vergessen Sie keinesfalls die Strichpunkte: Fehlen diese, erscheint ein Dialog, der die ungültige Stelle im Code hervorhebt.
Das on-leave-Ereignis wird ausgelöst, sobald der Mauszeiger das Desklet(-Fenster) wieder verlässt. Die Schriftgröße ändert sich zu 12 Punkt, die Farbe wieder zu blau.
Das Tag muss, wie bei XML üblich, mit einem Slash ("/") abgeschlossen werden. Zeile 5 beendet den Desklet-Code mit einem schließenden </display>.
Vorbereitung
Um gDesklets erfolgreich einzusetzen, bedarf es einiger Vorarbeit. Unter einer halbwegs aktuellen Distribution stellt dies jedoch kein größeres Problem dar. Vergewissern Sie sich aber auf jeden Fall, dass keine älteren Versionen des Paketes auf dem System installiert sind.
Eine speziell für Suse 9.2 zusammengestellte Variante von gDesklets finden Sie auf der Heft-CD. Die jeweils aktuellste Version des Programms können Sie unter [3] beziehen. Wollen Sie auf Basis der allerneuesten Quellen arbeiten, so finden Sie unter [7] den so genannten gDesklets Nightly Build Tarball zum Download. Er spiegelt die aktuellste Entwicklerversion wider und wird, wie der Name schon vermuten lässt, jede Nacht frisch gebaut.
Abhängigkeiten
Sie benötigt folgende Bibliotheken und Bindungen auf dem System (die Namen können je nach Distribution variieren): * python mindestens in Version 2.3. Bei SuSE teilt sich Python in mehrere Pakete auf – installieren Sie python-xml ebenfalls. * python-gtk2, die Python-Bindungen für gtk+-2.x, mindestens in Version 2.4.x. * python-pyorbit, die Python-Bindungen für ORBit2, in Version 2.0.1. * python-gnome2 2.6.x oder höher. Suse hat auch dieses Paket in mehrere kleinere aufgesplittet. Installieren Sie am besten alle, um eventuellen Problemen vorzubeugen. * expat sollte in Version 1.95.6 bzw. 1.95.8 vorliegen, 1.95.7 scheint fehlerhaft zu sein. * Clibgtop2 und librsvg jeweils mindestens in Version 2.8.0. * Cintltool Version 0.30 oder höher
Um gDesklets zu kompilieren, benötigen Sie zudem die Developer-Pakete von python, python-gtk2, python-gnome2, libgtop2 und librsvg. Suse 9.2 und älter liefern sehr veraltete Versionen der Pakete aus, deswegen ist man auf [4] oder [5] angewiesen. Dagegen bringen sowohl Debian Sarge als auch Fedora Core 3 bereits alles mit, was Sie brauchen. Für ältere Fedora-Versionen hält Dag Wieers [6] passende Pakete bereit.



