no-env.gif

Ein wenig Kosmetik?

Jo's alternativer Desktop

01.01.2001
Wie Ihr Linux-Desktop aussieht, bestimmen allein Sie. Mit deskTOPia nehmen wir Sie regelmäßig mit auf die Reise ins Land der Window-Manager und Desktop-Umgebungen, stellen Nützliches und Farbenfrohes, Hingucker und hübsches Spielzeug vor. Und getreu dem Motto "Unser Desktop soll schöner werden" zeigen wir hier ein Tool, das einem jeden Window-Manager neuen Glanz verleiht. Kosmetik für den Desktop.

Manch einer hat sicher bereits versucht, einen schlanken Window-Manager mit einer Anwenndung wie dem unlängst vorgestellten Systemmonitor gkrellm aufzuwerten - meist mit Erfolg. Doch was tun, wenn dieser zwar wie gewünscht auf dem Desktop thront, aber leider eben nur auf dem ersten Desktop zuzüglich Anwesenheitsbekundung in der Taskliste des Window-Managers? Oder das Tool der Träume gar für optische Alpträume sorgt, so z. B. ein GNOME-Panel mit Fensterrahmen - wer mag da nicht schnellstmöglich diese Kombination nach /dev/null verweisen?

Unser Hauptdarsteller

Doch besser als eine fachgerechte Entsorgung unserer Wünsche ist es, diese Realität werden zu lassen - es gibt eine Lösung, wie am Beispiel des Systemmonitor-Klassikers xosview gezeigt werden soll. Und da xosview einer jeden Distribution ausreichend aktuell beiliegt, befassen wir uns nicht weiter mit dessen Installation, sondern mit dem Vorhaben, diesen unauffällig in den Desktop zu integrieren. Dennoch ist die aktuelle Version auf der Heft-CD zu finden.

Abbildung 1: xosview im Gewand eines Window-Managers mit Eintrag in dessen Window-List

Des Kaisers neue Kleider

Ein Window-Manager soll normalerweise jedes Programm mit einem Rahmen versehen, sofern dieses nicht ausdrücklich wünscht, inkognito zu bleiben - was aber leider nicht jeder Window-Manager versteht bzw. vom Programmautor unter Umständen gar nicht so gedacht ist (wie z. B. bei xosview). Es bedarf also der Möglichkeit, ein beliebiges Programm unabhängig vom eingesetzten Fensterherrscher zu verbergen - es muss unsichtbar werden. Doch nur selten haben wir hierbei Einfluss auf das Programm - ebenso wie auf den Window-Manager. Aber wenn wir nach dem Start einer Anwendung und vor dem Start unseres Window-Managers dieses Programm seiner "Fensterattribute" berauben könnten, so würde der Fensterherrscher dieses nicht in seine Obhut nehmen.

Da es sich hierbei in der Regel nicht um Programme handelt, die während einer X-Session kurz mal hinzugestartet und wieder beendet werden, sondern wie eben ein Systemmonitor (oder eine Uhr, Startleiste, Posteingangs-Benachrichtigung usw.) nur einmal zu Beginn automatisch gestartet werden sollen, bedarf es dessen Aufnahme in die Startdateien unserer X-Session.

Die Umkleidekabinen

Jeder User kann sich seine eigene X-Session-Startdatei basteln. Diese heißt entweder ~/.xsession (wird meist verwendet, wenn der User sich grafisch - z. B. über xdm - einloggt), oder ~./xinitrc (Start von X über das Kommando startx). Beide Dateien sind identisch aufgebaut, weshalb es möglich ist, mittels eines Symlinks zwei Fliegen mit einer Klappe zu schlagen. Diese Dateien werden zeilenweise abgearbeitet, und ist der letzte Befehl darin beendet, so wird auch die X-Session beendet. Also startet man hierin zuerst Tools wie unser xosview, setzt bei Bedarf ein Hintergrundbild, und erst anschließend wird ein Window-Manager aufgerufen. Wenn dieser beendet wird, beendet sich X. Unsere ~/.xinitrc könnte also Folgendes beinhalten:

xosview &
 sapphire

Das "&" nach xosview ist nötig, denn ohne dieses würde der Window-Manager (hier sapphire) erst starten, nachdem unser Systemmonitor seinen Dienst quittiert hat - nun aber wird der Prozess xosview in den Hintergrund geschickt, und die nächste Zeile kommt an die Reihe.

Und so bietet sich hier auch eine ideale Gelegenheit, unser xosview vor dem Start des Fensterherrschers unsichtbar zu machen. Hierfür gibt es das unbekannte Programm xnodecor, das im Internet lediglich noch unter ftp://ftp.42.org/pub/wmx/contrib/xnodecor.c zu finden ist - die dort genannte Webseite des Autors ist nicht mehr verfügbar.

Maßanzug

Damit aber nicht genug - denn dort liegt nicht mehr als nackter Programmcode, mit dem wohl nur die Wenigsten etwas anfangen können. Und wer sich hier doch zu helfen weiß, wird feststellen, dass dieser zwar unter dem verwandten Betriebssystem FreeBSD funktionieren mag, nicht aber unter Linux. Daher habe ich es - mit den notwendigen Ergänzungen versehen - als Rundum-Sorglos-Paket mit auf die beiliegende CD gepackt. Entpackt und installiert wird dieses wie auch bei anderen tar.gz-Quelltext-Archiven üblich:

tar xvzf xnodecor.tar.gz
 cd xnodecor
 su -    (Passwort…)
 make
 make install
 exit

Sollten wider Erwarten Probleme auftreten, so liegt dem Paket auch ein fertig kompiliertes Binary bei, das ein "User" root einfach nach /usr/local/bin kopieren kann.

Hinter den Kulissen

Wie xnodecor aufzurufen ist verrät uns der Befehl "xnodecor -h", und das ist denkbar einfach: Während bisher in unserer ~/.xinitrc zuerst xosview und anschließend ein Window-Manager aufgerufen wird, fügen wir nun einfach ein xnodecor -w xosview@rechnername ein:

xosview &
 xnodecor -w xosview@planet
 sapphire

xosview@rechnername? Richtig, xosview gibt sich unter diesem Namen zu erkennen, und nicht nur wie zu erwarten unter xosview. Im Zweifelsfall lässt sich der Name mit dem Befehl xprop | grep WM_NAME und einem Mausklick auf das zu versteckende Fenster ermitteln. Üblich ist es jedoch, dass ein Programm sich mit dem Namen der ausgeführten Datei verstecken lässt.

Make Up

Wer nun praktische Versuche folgen ließ, stellte sicher enttäuscht fest, dass xosview selber auch einen kleinen Rahmen malt, nicht unbedingt in der rechten oberen Bildschirmecke Platz nimmt und sich rein gar nicht farblich zum Desktop-Hintergrund gesellen mag. Aber auch das kann man ändern, und zwar über die X-Ressources. Hierzu einfach - sofern nicht längst vorhanden - eine Datei ~/.Xdefaults anlegen und diese um folgende Einträge ergänzen:

xosview*geometry:   -0+0
 xosview*background: #102040
 xosview*foreground: #102040

Selbstverständlich sind hier eigene Werte einzusetzen - gerade bei xosview bestehen nahezu unendlich viele weitere Optionen, nachzulesen im Manual, man xosview. Und schon sieht unser Systemmonitor wie in Abbildung 2 aus, ist auf allen Desktops anwesend und taucht nicht mehr in der Window-Liste unseres Fensterherrschers auf. Wer viel Zeit und Geduld hat, könnte nun theoretisch eine entsprechende Hintergrundgrafik mittels xnodecor funktionsfähig gestalten …

Abbildung 2: xosview unsichtbar für den Window-Manager

Glossar

Window-Manager

Verwaltet die Fenster der grafischen Oberfläche X Window, die auch von KDE oder GNOME verwendet wird (beide greifen hierbei auch "nur" auf einen Window-Manager zurück, der die Anwendungen mit Rahmen ausstattet).

GNOME-Panel

Die separat einsetzbare Startleiste des GNOME-Environments; Gegenstück zur KDE-Startleiste oder Windows-Taskbar.

/dev/null

Unix-Gerätedatei, die Daten "verschwinden" lässt: In diese Datei geschriebene Daten verden einfach vom System vergessen.

X-Session

Sitzung am grafischen Desktop - vom Start der Oberfläche (X) bis zum Beenden.

Symlinks

Verzeichniseintrag, hinter dem sich keine Datei verbirgt, sondern der nur einen Querverweis auf eine weitere Datei darstellt. So kann mit dem Befehl "ln -s .xinitrc .xsession" das Erstellen der Datei ~/.xsession umgangen werden, falls eine ~/.xinitrc mit gewünschtem Inhalt bereits vorhanden ist.

X-Ressources

Hierüber werden bei klassischen X-Programmen Defaultwerte gesetzt - meist hinsichtlich der Optik.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare