Home / LinuxUser / 2004 / 07 / Daten auf dem Desktop visualisieren mit X On Screen Display

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Nicht zu übersehen

Daten auf dem Desktop visualisieren mit X On Screen Display

01.07.2004 Manchmal muss ein Linux-System seinen Benutzer auf etwas Wichtiges hinweisen. Damit dieser derartige Infos auch garantiert nicht übersieht, nutzt es dazu am besten XOSD.

Die Ankunft neuer E-Mails, das Eintreten kritischer Systemzustände oder eine per Fernbedienung hervorgerufene Lautstärkeänderung des Audiosystems – es gibt unzählige Dinge, über die man am besten unübersehbar und auffällig informiert werden will. Warum lässt man sich diese Daten dann nicht einfach "on screen" auf dem Desktop darstellen?

Linux wäre nicht Linux, hätte bisher noch niemand diese Idee in die Tat umgesetzt. Das Lösungswort heißt XOSD, eine Bibliothek, mit deren Hilfe grafische Anwendungen Texte direkt auf dem Bildschirmhintergrund darstellen können. Zu ihren Nutzern gehören beispielsweise Plugins für den Media-Player XMMS (Abbildung 1) und das Instant-Messaging-Programm LICQ (Abbildung 2).

Aber man muss kein Programmierer sein, um sich dieses Feature zunutze zu machen. Mit osd_cat liefert das XOSD-Paket (wir verwenden Version 2.2.5) ein Werkzeug mit, mit dem jeder beliebige Texte auf der grafischen Oberfläche anzeigen kann.

Abbildung 1: Mit einem XOSD-Plugin zeigt XMMS direkt auf dem Bildschirmhintergrund an, was gespielt wird.

Abbildung 2: Warum den Chat nicht über den Hintergrund laufen lassen? Ein Anzeigeplugin für LICQ macht's möglich.

XOSD gibt es sowohl im Quellcode [1] als auch als Binärpakete; zu letzteren weist eine Suche nach dem Stichwort xosd unter [2] den Weg. Während das Quellcode-Paket das angesprochene XMMS-Plugin enthält, fehlt es manchen der RPMs. Wer es dennoch ausprobieren will, ohne gleich zum Compiler greifen zu müssen, wird ebenfalls unter [2] fündig, muss aber nach xmms-xosd suchen. Nicht zur Standardausstattung gehört das LICQ-Plugin, das separat unter [3] erhältlich ist.

Ein wenig Kommandozeilentheorie

Das Schöne an Linux ist, dass alle Kommandozeilen-Tools einem einheitlichen Schema folgen, welches festlegt, dass Ausgaben über den so genannten "stdout"-Kanal ("Standard Output"), Eingaben über den Standard-Input-Kanal "stdin" und Fehlermeldungen über "stderror" erfolgen. Typischerweise sind "stdout" und "stderror" an das aktuell laufende Terminal gekoppelt, wodurch die Ausgaben direkt an den Bildschirm gesendet werden. Für die Eingabe sorgt standardmäßig die Tastatur.

Es besteht aber auch die Möglichkeit, den Standard-Ausgabe-Kanal eines Programms mit dem "stdin" eines weiteren zu koppeln und damit schlicht und ergreifend die Ausgabe des ersten Befehls durch den zweiten weiterverarbeiten zu lassen. Eine solche Pipeline entsteht durch Verwendung des Pipe-Symbols rpm -qa in der Befehlskette

rpm -qa | grep xosd

alle installierten RPM-Pakete auf. Wegen der Pipe zeigt es diese jedoch nicht auf dem Bildschirm an, sondern leitet die Ausgabe an den zweiten Befehl grep xosd weiter, der nur die Zeilen heraussucht, die die Zeichenkette xosd enthalten.

Auf dieselbe Weise funktioniert das Tool osd_cat. Es nimmt über den "stdin"-Kanal Zeichenfolgen entgegen und stellt diese dann "on screen", live auf dem Bildschirm, dar. Alternativ darf das Tool mit einem Dateinamen als Parameter aufgerufen werden. So liest

osd_cat ~/.bashrc

die Datei .bashrc im Homeverzeichnis ~ und lässt ihren Inhalt in der linken oberen Bildschirmecke "durchrauschen".

Die aktuelle Uhrzeit "on screen"

Dabei handelt es sich bislang um keine sehr praxisgerechte Anwendung, denn erstens erschweren dort abgelegte Desktop-Icons die Sicht; zweitens kann die rote Minischrift so schnell sowieso niemand lesen. Diese beiden Ärgernisse beseitigen die osd_cat-Optionen -A (alternativ --align=) für die horizontale Ausrichtung, -p (oder --pos=) für die vertikale und -f (alias --font=) für die verwendete Schrift (vgl. Tabelle 1): So platziert

date +"%k:%M:%S" | osd_cat -A center -p middle -f -adobe-helvetica-*-*-*-*-24-*-*-*-*-*-*-* -c darkgreen -s 5 -S lightgray

die aktuelle Zeit in der Mitte (-A center -p middle) des Bildschirms (Abbildung 3). Der date-Befehl gibt die aktuelle Uhrzeit dank der Formatierungsangabe +"%k:%M:%S" als klassische, durch Doppelpunkte getrennte Stunden:Minuten:Sekunden-Anzeige aus (%k steht für die aktuelle Stunde in 24-Stundenanzeige, %M für die aktuelle Minutenzahl und %S für die Sekunden). Mittels Pipe-Symbol gelangt dieses Datum zum Befehl osd_cat, der sich um die Darstellung kümmert.

Dank der 24 Punkt großen Helvetica-Schrift (-f -adobe-helvetica-*-*-*-*-24-*-*-*-*-*-*-*) lässt sich die Uhrzeit gut lesen; Kasten 1 erklärt, wie man den passenden Namen herausfindet. -c darkgreen färbt das Ausgegebene dunkelgrün; -s 5 -S lightgray definiert einen hellgrauen Schatten, der sich 5 Punkte unterhalb und rechts des Originaltexts befindet.

Abbildung 3: Die "osd_cat"-Parameter "--align=center" und "--pos=middle" sorgen dafür, dass die aktuelle Uhrzeit in der Bildschirmmitte erscheint.

Beim Ausprobieren stellt man schnell befremdet fest, dass sich die Uhrzeit ganze fünf Sekunden lang einblendet, dabei nicht verändert und die Anzeige anschließend erstirbt. Obwohl sich osd_cat mit dem Parameter -d 60 dazu überreden lässt, die einmal von date übergebene Uhrzeit 60 Sekunden lang anzuzeigen, erfüllt eine solche stehende Uhr kaum ihren Zweck. Abhilfe naht in Form von Shell-Programmierung unter Verwendung der Linux-Standard-Shell Bash:

while true ; do date +"%k:%M:%S"; sleep 1; done | osd_cat -A left -p top -f -adobe-helvetica-*-*-*-*-24-*-*-*-*-*-*-* -c darkgreen -s 5 -S lightgray

Die Endlosschleife while true; do ... ; done sorgt dafür, dass das Datum in alle Ewigkeiten neu ausgelesen wird. Damit die CPU nicht fortwährend Uhrzeiten bestimmen muss (wir brauchen nur jede Sekunde eine neue), bremst sleep 1 ein wenig: Jeder Schleifendurchlauf stoppt damit für die Dauer einer Sekunde.

Abbildung 4: Per Default zeigt "osd_cat" – sofern es soviele Daten bekommt – jeweils fünf Zeilen an, die es fortlaufend "durchschiebt".

Abbildung 4 illustriert den Haken an der Sache: osd_cat zeigt jeweils die fünf aktuellsten (Uhrzeiten-)Zeilen an; sind diese voll, scrollt die Anzeige einfach nach oben. Zum Glück beschränkt die in Tabelle 1 aufgeführte osd_cat-Option -l 1 die auszugebende Zeilenzahl auf eine.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

845 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...