Karamba auf dem Desktop
KDE-Hintergrund mit SuperKaramba aufwerten
Etwas interaktiver
Wie bereits erwähnt, zeigt SuperKaramba nicht nur Informationen über das System an, sondern steuert bei Bedarf Applikationen fern – zum Beispiel XMMS [8], wie Abbildung 7 zeigt. Zu diesem Zweck erweitern wir Listing 1 um den Code aus Listing 2.
Außer dem Anfügen der neuen Gruppe, die mit Hilfe von Texten und hervorgehobenen (preview=true) Klickbereichen Knöpfe für die XMMS-Bedienung erzeugt, passen wir noch die Höhe des Gesamtfensters in der KARAMBAH=100 an. (Das Ergebnis befindet sich unter dem Namen meintheme_xmms.theme auf der Heft-CD.)
Ein Klick auf das mit < beschriftete Kontrollfeld springt dank ONCLICK="xmms --rew" auf das vorherige Lied in der Wiedergabeliste, W startet die Wiedergabe (xmms --play), > spult auf das nächste Lied vor (--fwd), die Pausentaste P hält die Wiedergabe zwischenzeitlich an (--play-pause), S stoppt sie gänzlich (--stop), und M startet die KDE-Lautstärkeregelung in Gestalt des Mixers kmix [14] mit dem Kommando dcop kmix kmix-mainwindow#1 show [15,16].
Listing 2
Erweiterung um ein XMMS-Control
<GROUP> X=10 Y=65
text x=12 y=0 value="XMMS"
text x=50 y=0 value="<"
text x=60 y=0 value="W"
text x=70 y=0 value=">"
text x=80 y=0 value="P"
text x=90 y=0 value="S"
text x=100 y=0 value="M"
CLICKAREA x=50 y=0 w=9 h=12 preview=true SENSOR=PROGRAM ONCLICK="xmms --rew"
CLICKAREA x=60 y=0 w=9 h=12 preview=true SENSOR=PROGRAM ONCLICK="xmms --play"
CLICKAREA x=70 y=0 w=9 H=12 preview=true SENSOR=PROGRAM ONCLICK="xmms --fwd"
CLICKAREA x=80 y=0 w=9 H=12 preview=true SENSOR=PROGRAM ONCLICK="xmms --play-pause"
CLICKAREA x=90 y=0 w=9 H=12 preview=true SENSOR=PROGRAM ONCLICK="xmms --stop"
CLICKAREA x=100 y=0 w=9 H=12 preview=true SENSOR=PROGRAM ONCLICK="dcop kmix kmix-mainwindow#1 show"
</GROUP>
@KE:
Wer sich das Theme "glassmachine" genauer anschaut, sieht, dass dieses die aktuelle Position innerhalb des Liedes während der Wiedergabe mit einem Statusbalken anzeigt, Titel und Interpret ausliest und ausgibt. Das können wir – wie Abbildung 8 zeigt – auch! Für die Verlaufsanzeige erzeugen wir eine Bilddateibar1.png, die ein 96×12 Pixel großes graues Rechteck enthält, und erweitern die Gruppe in Listing 2 um die Zeile
BAR X=12 Y=15 SENSOR=XMMS FORMAT="%ms" PATH="bar1.png" INTERVAL=500
Der leider nicht offiziell dokumentierte Format-Parameter %ms sorgt dafür, dass der an den XMMS-Sensor gebundene Balken während des Abspielens eines Titels wächst und somit die jeweils aktuelle Position im Lied angibt.
Fehlt nur noch die Anzeige von Songtitel und Künstler. Auch dafür brauchen wir nicht mehr als eine zusätzliche Zeile, die sich die entsprechenden Daten vom XMMS-Sensor holt:
TEXT X=13 Y=16 W=94 H=10 SENSOR=XMMS FONTSIZE=8 FONT="Sans" color=255,255,255 FORMAT="%title"
FORMAT="%title" liefert hierbei sowohl den Interpreten als auch den Titel. Das komplette Theme, small_text_xmms.theme genannt, finden Sie zusammengepackt im Archiv small_text_xmms.tar.bz2 unter [10] oder auch auf der Heft-CD.
Allen, die jetzt sehnsüchtig darauf warten, ihre Themes mit Python-Code aufzuwerten, sei versprochen, dass ein entsprechender Artikel bald folgt.
Glossar
NFS
Das "Network File System" ermöglicht das transparente Einbinden von Verzeichnissen auf entfernten Unix/Linux-Servern in den eigenen Verzeichnisbaum.
Samba
Zu Microsofts Datei- und Druckerfreigabe-Funktionen kompatibles Software-Paket, das von Linux aus den Zugriff auf derartige Ressourcen ermöglicht. Zudem kann Linux mit Samba als Datei- und/oder Druckerserver für Windows-basierte Netzwerkclients herhalten.
Swap-Partition
Ein Bereich auf der Festplatte, der insbesondere auf Computern mit wenig physischem Arbeitsspeicher (RAM) als zusätzlicher virtueller Arbeitsspeicher notwendig ist, wenn speicherfressende Applikationen zum Einsatz kommen sollen. Das Auslagern der Speicherdaten auf Festplatte ("ausswappen") macht die Angelegenheit aber nicht gerade schnell.
who | cut -d\ -f 1 | sort | uniq
Klassische Anwendung einer Unix-Pipeline (|). Das Kommando who gibt aus, wer aktuell eingeloggt ist. Aus dessen Ausgabe schneidet cut das erste Feld (-f 1) mit dem Usernamen heraus; als Spaltentrenner (delimiter, -d) dient ein Leerzeichen, das der Backslash \ schützt. sort ordnet die Ausgabe alphabetisch, und uniq sortiert die Dubletten aus, so dass jeder User nur einmal auftaucht.
Infos
[1] SuperKaramba-Binärpakete: http://netdragon.sourceforge.net/?page=Download+SuperKaramba
[2] SuperKaramba-Themes: http://www.kde-look.org/index.php?xcontentmode=karamba
[3] Generelle .theme-Parameter: http://netdragon.sourceforge.net/?page=General+Commands
[4] .theme-Sensoren: http://netdragon.sourceforge.net/?page=Sensors
[5] .theme-Anzeigegeräte: http://netdragon.sourceforge.net/?page=Meters
[6] Der KDE-Media-Player Noatun: http://noatun.kde.org/
[7] Linux System Hardware Monitoring: http://secure.netroedge.com/~lm78/
[8] X Multimedia System: http://www.xmms.org/
[9] The GIMP: http://www.gimp.org/
[10] Beispiel-Theme: http://wwwiti.cs.uni-magdeburg.de/~hoepfner/download.html
[11] Karamba, das Original: http://www.efd.lth.se/~d98hk/karamba/
[12] SuperKaramba: http://netdragon.sourceforge.net/
[13] Thomas Kaufmann: "Einführung in Python", LinuxUser 05/2003, S. 78 f.
[14] Carsten Schnober: "Studio K", LinuxUser 09/2003, S. 27 ff., http://www.linux-user.de/ausgabe/2003/09/027-kdesound/
[15] Patricia Jung: "Versteckt und nützlich", LinuxUser 09/2003, S. 30 ff.
[16] Scott Wheeler: "Boost your efficiency", Linux Magazine 11/2003, S. 46 ff., http://www.linux-magazine.com/issue/36/KDE_Scripting_DCOP.pdf @KE:



