desktopia.png

Xresources

Jo´s alternativer Desktop

01.05.2001
Sicher wünscht sich jeder einen Desktop, in dem alle Anwendungen zueinander passen – vor allem hinsichtlich der Optik. Doch manch klassisches X-Programm – wie xcalc, xcolorsel oder xmessage – mag vielleicht mit einer guten Funktionalität und Bedienung aufwarten, aber deren Schwarz-Weiß-Optik genügt eben nicht mehr den ästhetischen Ansprüchen heutiger Desktop-User. Hier helfen die Xresources.

deskTOPia

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.

Wegen der unbefriedigenden Optik fristet manch richtig gutes Programm ein Schattendasein zugunsten eines – oftmals unausgereifteren - Ersatzes. Doch diese vergessenen Programme bieten ebenfalls eine Möglichkeit, um bis ins kleinste Detail mit einer individuellen Farbgebung gestaltet zu werden. Hier ist bei der Farbgebung alleine in den meisten Fällen noch nicht einmal das Ende der Fahnenstange erreicht: Rahmen, Scroll-Balken und Default-Optionen können an gleicher Stelle vorkonfiguriert werden: in den Xresources.

Es gibt viel zu tun …

Doch warum sollte man diese Konfigurationsarbeit auf sich nehmen, wo doch zu fast jedem Programm ein entsprechendes KDE- oder GNOME-Äquivalent existiert? Vielleicht mag sich der Eine oder Andere in diesem Szenario wiederfinden: Da hat man endlich das Theme für seinen Desktop gefunden, und schon taucht ein Programm auf, bei dem die gesetzte Farbkombination schlicht die Funktion beeinträchtigt. Was nützt einem ein gmessage+, das wie in Abbildung 1 aussieht? Und daran kann man bei den "modernen" Toolkits leider nichts mehr ändern – die Anwendung kann in dieser Hinsicht nicht mehr individuell konfiguriert werden. Viel flexibler zeigen sich hier jene Programme, die ohne die Grafikbibliotheken Qt (KDE) oder GTK+ (GNOME) auskommen – meist werten diese die in X (der grafischen Oberfläche selbst) implementierten Resourcen aus. Und auf diese hat man leicht Einfluss, so z. B. über die User-eigene Datei ~/.Xresources. Existiert diese Datei auf dem eigenen System nicht, so kann jeder User sich selbst eine solche anlegen.

Abbildung 1: Zeit für ein neues Theme wegen gmessage+?
Abbildung 2: xmessage, wie es keiner mehr mag
Abbildung 3: Leicht überarbeitete Optik bei xmessage

Funktionsweise

Das Prinzip ist eigentlich sehr simpel: Optionen, die sonst beim Programmstart mitgegeben werden können, kann der User in einer Datei voreinstellen. Manche Programme schauen in dieser Datei selbst nach, und manche befragen hierzu einfach den X-Server (der über das Tool xrdb die Datei ~/.Xresources beim Start komplett einliest). Letzteres ist der üblichere Weg. Und über diese Xresources kann auch bei einigen Programmen allerhand konfiguriert werden, was sonst über Kommandozeilenparameter gar nicht zur Verfügung steht – so z. B. Rahmendicken und Farben, Schriftarten und Größen, Texte, Scroll-Balken usw.

Prinzipiell lassen sich mindestens jene Programme anpassen, die auf das X-Toolkit zurückgreifen – doch zweifelsfrei eine Unterstützung feststellen kann man praktisch nicht. Auch kann man weder GNOME- noch KDE-Programme hierüber beeinflussen (diese verwenden eigene Toolkits, die die Xresources umgehen). Bei allen anderen Anwendungen stehen die Chancen jedoch gut – selbst das Tk- und das Motif-Toolkit verwerten die Vorgaben der Xresources.

Womit auch schon gesagt ist, dass das Basteln einer ~/.Xresources mit allerhand Tüfteln verbunden ist – hat man nicht passende Settings als Anhaltspunkt parat, erwartet einen oftmals eine zeitaufwendige Suche.

Aufbau

Am besten lässt sich der Aufbau der ~/.Xresources über ein einfaches Beispiel verdeutlichen:

xterm*background: black

Zunächst wird der Programname genannt, danach ein Resourcenname – getrennt entweder durch einen Asterisk ("*") oder Punkt. Ein Asterisk ist ein sogenannter Wildcard bzw. Joker: Somit wären in diesem Beispiel alle Hintergrund-Resourcen des XTerms auf black gesetzt (oft stehen mehrere Hintergrundfelder zur Wahl). Will man eine spezielle Hintergrundfarbe abändern, so empfiehlt sich eine konkretere Benennung, getrennt durch einen Punkt:

xterm*scrollbar.background: grey65

Schlaue Leute kommen nun sicher auf die Idee, alle Hinter- und Vordergrundfarben auf einmal per Wildcard zu setzen:

*background: #102050
 *foreground: lightyellow

Doch damit sollte man vorsichtig sein – zu leicht kann es passieren, dass eine Programmausgabe nicht mehr lesbar ist: Denn wer weiß schon, was sich der Programmautor selbst für Vorgaben in seinem Programmcode ausgedacht hat? Greift dann *foreground an irgendeiner Stelle nicht, so wäre eine schwarze Schrift auf dunkelblauem Hintergrund nur schwer zu entziffern.

xrdb

Damit Änderungen an den Xresources auch während einer laufenden X-Session Wirkung zeigen (also ohne Neustart des X-Servers), muss die Ressourcen-Datei über das Tool xrdb eingelesen werden. Die Syntax lautet xrdb -option Datei. Als Optionen sind vorrangig -merge und -load interessant: Während -merge bisherige Settings bestehen lässt und jene der einzulesenden Datei lediglich hinzufügt, löscht ein -load alle zuvor eingegebenen Werte und setzt die aufgerufene Datei als alleiniges Ressourcen-File.

Zeigt ein xrdb -load .Xresources keine Wirkung, so hilft in diesem Fall sicher ein symbolischer Link namens ~/.Xdefaults auf ~/.Xresources:

ln -s .Xresources .Xdefaults

Eigentlich sollte die datei ~/.Xresources immer ausgewertet werden – eigene Experimente jedoch zeigten, dass manche Konfiguration nur das etwas ältere Modell der Xdefaults unterstützt. Da die Syntax jedoch identisch ist, stehen mit diesem Symlink fortan beide Versionen zur Verfügung.

Beispiel Navigator

Abbildung 4: Standard-Look des Netscape Navigator

Die Möglichkeiten der Xresourcen lassen sich eindrucksvoll am Netscape Navigator 4.7 demonstrieren. Angenommen, der Shop-Button wird nicht benötigt. Kein Problem – fügen Sie den ~/.Xresources eine einzige Zeile hinzu, und schon ist er weg:

Netscape*toolBar*myshopping.isEnabled: False

Wer nun wissen möchte, wie die übrigen Buttons benannt sind, der versuche sich einfach mal an dieser Liste:

Netscape*toolBar*destinations.isEnabled: False
 Netscape*toolBar*print.isEnabled: False
 Netscape*toolBar*search.isEnabled: False
 Netscape*toolBar*viewSecurity.isEnabled: False

Schlank ist trend, so auch beim Scrollbar. Wer es lieber etwas üppiger mag, wird ebenfalls in den Xresources fündig. Zwar könnte man hierfür auf die Navigator-eigenen Ressourcen zurückgreifen, doch ausbaufähiger (da per Wildcard auch auf andere Applikationen ausdehnbar) ist der Weg über das verwendete Toolkit (hier Motif) und dessen Ressource XmScrollbar:

Netscape*XmScrollBar.width: 19

Wer seinen Navigator gerne mal versehentlich verlässt, begrüßt es sicherlich, wenn dieser vor seinem Abschied nach der Richtigkeit dieses Vorhabens fragt:

Netscape*confirmExit: true

Und wer mit der Startgröße des Navigator-Fensters kämpft, will diese einfach fest vorgeben:

Netscape.Navigator.geometry: 820x600
 Netscape*dontSaveGeometryPrefs: true
 Netscape*ignoreGeometryPrefs: true

Dann wäre da noch der Ärger mit den Schriften, die die meisten als zu klein empfinden. Der Navigator geht von 75 dpi aus – ideal bei niedrigen Bildschirmauflösungen. Setzt man diesen Wert auf 100, so ergibt sich auf den meisten heutigen (großen) Bildschirmen eine akzeptable Darstellung. Interessant ist in diesem Zusammenhang auch, dass man die Abstufung der Schriftgrößen zueinander ändern kann – per Default wird pro Schriftvergrößerung um 20% gezoomt. Ebenso kann die Standardschrift des Navigators selbst (also nicht die der Web-Seiten-Darstellung) geändert werden:

Netscape*documentFonts.xResolution*iso-8859-1: 100
 Netscape*documentFonts.yResolution*iso-8859-1: 100
 Netscape*documentFonts.sizeIncrement: 20
 Netscape*fontList: -*-helvetica narrow-medium-r-condensed-*-*-160-*-*-p-*-*

Eine richtig interessante Spielwiese ist die Farbgebung. Da eine genaue Erklärung hier jedoch den Rahmen sprengen würde (und abtippen auch kaum eine Freude ist), befinden sich einige Settings hierzu auf der Heft-CD (LinuxUser/desktopia/navigator.txt; neben weiteren Settings zu anderen Programmen im gleichen Verzeichnis). Kurz und bündig zum Experimentieren:

Netscape*background:                             #b0b0b0
 Netscape*foreground:                             #fffafa
 Netscape*dashBoard*background:                   #708090
 Netscape*dashBoard*foreground:                   #ffffe4
 Netscape*menuBar*background:                     #708090
 Netscape*menuBar*foreground:                     #ffffe4
 Netscape*menuBar*popup_pulldown*background:      #9999aa
 Netscape*toolBox*background:                     #89939e
 Netscape*toolBox*toolBar*background:             #89939e
 Netscape*toolBox*toolBar*foreground:             #ffffed
 Netscape*toolBox*urlBarItem*background:          #a2a7ac
 Netscape*toolBox*urlBarItem*foreground:          #fffff6
 Netscape*toolBox*personalToolbarItem*background: #bbbbbb
 Netscape*toolBox*personalToolbarItem*foreground: #ffffff

Das Ergebnis unserer Konfigurationsarbeit kann sich sehen lassen, wie Abbildung 5 beweist. Eine nahezu vollständige Sammlung der Navigator-X-Ressourcen findet sich in der Datei Netscape.ad, die mit jedem Navigator ausgeliefert wird (zu finden in dessen Installationsverzeichnis).

Abbildung 5: Unser überarbeiteter Navigator

Weitere Informationen

Wenn man erst einmal merkt, was alles mit diesen Xresources machbar ist, stellt man sich bald die Frage: Gibt es irgendwo eine vollständige Liste der Ressourcen? Nein, leider nicht. Dies ist auch gar nicht machbar, denn oftmals gibt es etliche Möglichkeiten, zum Ziel zu gelangen. Aber es gibt Anwender, die ihre gefundenen Settings anderen zugänglich machen – so z. B. unter http://x.themes.org/viewresources.phtml?type=xdefault. Ebenfalls einen Blick wert sind die Seiten von Marcus Jodorf, zu finden unter http://www.bogomips.de/content/xresources.html.

Sehr genau kennt auch der jeweilige Programmautor die Ressourcen-Namen, mit denen seine Software ansprechbar ist. Hier hilft also ein Blick in dessen Manual-Seite, die Manpage. Ebenfalls beschäftigt sich der Distributor mit solchen Dingen – in der Regel findet sich eine kleine Sammlung der Xresources im Verzeichnis /etc/X11/Xresources.

Der "Spurensuche" dient das Tool editres, einem "dynamic resource editor". Dieser ist in der X-Basisinstallation enthalten, und kann selbstverständlich selber auch über die Xresources konfiguriert werden. Seine Anwendung ist leider etwas kryptisch, weshalb er wohl nur Verzweiflungstätern als allerletzte Zufluchtsstätte dient. Aber ein gesuchter Ressourcen-Name kann mit diesem Tool meist zweifelsfrei ermittelt werden.

Glossar

Toolkit

Dient dazu, dass nicht jeder Programmautor jeden Button neu programmieren muss – es ist eine Sammlung gängiger Elemente, auf die mehrere Programme zurückgreifen können.

symbolischer Link

Ein Verzeichniseintrag, hinter dem sich nur ein Querverweis auf eine weitere Datei an anderer Stelle im Dateisystem verbirgt. Der Vorteil ist, dass eine Datei an mehreren Stellen der Verzeichnishierarchie (und mit unterschiedlichen Namen) aufgerufen werden kann, ohne tatsächlich mehrfach vorhanden zu sein.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare