Client*ResourceName: ValueAuf diese Weise kann man, ähnlich wie mit Shell-Environment-Variablen, den Anwendungen Vorgaben über zu verwendende Farben, Fonts, Strings, Graphiken, Dateinamen, Fenstergrößen und viele weitere anwendungsspezifische Daten machen. Nur daß man hier für einzelne Anwendungen unterscheiden kann. Für einige Anwendungen, die in ihren Manuals die Namen ihrer Widgets (Objekte in Fenstern und Formularen) angeben, kann man sogar das Verhalten von Subkomponenten einzeln steuern.
Der hier verwendete Begriff Resource ist zu unterscheiden von seiner Bedeutung in anderen Kontexten, wo er z.B. bei der Beschreibung der Xlib Fenster, Bitmaps, Fonts und Farben bezeichnet. In diesem Abschnitt bedeutet er ein Feature der höheren Schnittstellen zu X, d.h. z.B. der XToolkit. Programme die damit geschrieben wurden, verwenden automatisch die hier beschriebenen Datenbanken.
Der Sinn dieses Mechanismusses ist es, daß sehr viele kleine Details an einer X-Anwendung leicht konfiguriert werden können, z.B. die Titelzeile eines Fensters, oder die Farbe eines bestimmten Knopfes in einem Fenster uvm. Der Vorteil gegenüber Environment Variablen oder Kommandozeilenparametern ist, daß der Programmierer die Möglichkeiten nicht explizit schaffen muß. Die Programme arbeiten intern auch mit dem Resource-Mechanismus, man steuert so also direkt programminterne Konstanten. Weiter Informationen dazu in man X, Abschnitt RESOURCES.
Der verwendete Begriff Class steht für die Klasse eines Programms, das ist üblicherweise einfach der Name, wobei bis zum ersten Buchstaben der kein "X" ist groß geschrieben wird, danach klein (z.B. hat xterm die Klasse XTerm, demo hat Klasse Demo).
Hat man nur wenige Werte an häufig verwendeten Programmen einzustellen, macht man das am besten in der Datei $HOME/.Xdefaults (hier als Beispiel aus der CIP-Demo-Umgebung) wo die Default-Parameter für xbiff, xterm, xload und Window Manager eingestellt werden.
Mit dem Kommando xrdb kann man Resourcen in die Resource-Datenbank des root-Fensters eines Displays laden. Dies geschieht z.B. meist mit dem .Xdefaults File aus .xinitrc heraus. Die so eingestellten Werte werden dann von allen neugestarteten clients beachtet, sofern sie nicht aus den anderen oben genannten Quellen überschrieben werden.
Die Syntax der Resource-Zuweisung ist, so wie sie oben angegeben ist sehr vereinfacht. Im Prinzip muß man das Zielobjekt genau angeben, d.h. zuerst den Client-Namen, dann die Reihe aller Widgets im Objekt-Baum, vom toplevel-widget der Application bis zum Ziel-Widget. Dahinter steht dann der Name der gewünschten Resource (z.B. "foreground" um die Vordergrundfarbe einzustellen). Alle Angaben werden mit einem Punkt "." getrennt.
client.widget1.widget2.widgetN.resource: valueAuf diese Weise kann man jedes einzelne Objekt eines clients gezielt ansprechen, sofern man die Widgetnamen kennt. Diese werden für viele clients in den Manuals bekannt gegeben, siehe z.B. in man xload.
Eine etwas allgemeinere Möglichkeit der Konfiguration ist, anstelle der Widgetnamen deren Klasse anzugeben. Dann kann man z.B. sagen, daß alle Buttons einer bestimmten Klasse von Anwendung gelb sein sollen.
CLASS.widgetclass1.widgetclassN.resourceclass: valueOft möchte oder kann man keine so genauen Angaben machen. Deshalb gibt es die Möglichkeit, in der Zielangabe Wildcards "*" zu verwenden. Ein "*" steht für eine beliebige Anzahl von Class- oder Widgetnames. Damit kann man die Angabe einer Resource im Extremfall wieder auf die einfache Form reduzieren, wie sie ganz am Anfang genannt war:
client*resource: valueGenauere Beschreibung von Resourcen findet sich im Manual "Programming and Applications with Xt", das als Kopie in einem blauen Ordner im CIP-Pool, 2.Stock liegt.