Erste Schritte
Grundlagen

Position und Größe

Farb- und Fontnamen

Color Picker
In den vorhergehenden Beispielen wurde schon reichlich von Farbnamen Gebrauch gemacht. So legt der Kommandozeilen-Parameter  -bg LightYellow2  beim Xterm und vielen andern X-Applikationen die Hintergrundfarbe ("Background") auf einen dezent gelb-bräunlichen Ton fest.
Diese Farben werden immer vom X-Client angefordert; der X-Server ist nur Ausführender und hat keinen direkten Einfluss auf die Farbgebung einzelner Fensterelemente. Mit Hilfe von RGB-Werten ("Rot-Grün-Blau") kann der X-Server drei 8-bit-Zahlenwerten (dh. jeweils zwischen 0 und 256 bzw. 00 und ff in hexadezimaler Darstellung) jeden für das menschliche Auge unterscheidbarden Farbwert identifizieren und - soweit dies Grafikkarte und Monitor zulassen - anzeigen.
Die Abb. links zeigt das Fenster zur Farbauswahl des mächtigen Graphikprogramms gimp, das im Linux-Umfeld entwickelt wurde. Man sieht die RGB-Werte in dezimaler Darstellung und als "HTML-Form" die hexadezimale Darstellung, die auch für X11 verwendet werden kann.

Auflösung der Farbnamen

Wie geht nun der X-Server mit Farbname wie LightYellow2 um?  Recht simpel:
Unter /usr/share/X11/ - in älteren Distributionen und einigen UNIX-Varianten unter /usr/lib/X11/ - findet man eine Datei namens rgb.txt. Dort sind sämtliche möglichen Farbnamen mit ihren RGB-Werten gelistet. Der Anfang dieser umfangreichen Datei ist in der Spalte rechts gelistet.

Fordert also ein X-Client einen bestimmten Farbnamen an, so ermittelt der X-Server über die entsprechende Zeile in der rgb.txt den zugehörigen RGB-Wert und verwendet diesen für die Darstellung. Für LightYellow2 ist das übrigens 238 238 209.
Farbnamen, die man hier nicht vorfindet, könenen vom X-Server auch nicht  korekt dargestellt werden. Diese Gefahr ist allerdings gering, da der Bestand von rgb.txt über die meisten Linux- und UNIX-Varianten idenntisch ist.

Natürlich ist es auch möglich direkt mit RGB-Werten zu arbeiten. Dazu wird die oben erwähnte hexadezimale Form verwendet, und zwar angeführt von einem #-Zeichen. Da # für die Shell ein Kommentarzeichen ist, muss das Ganze noch in Anführungszeichen.

Ein Xterm mit dem reizenden Violett, das in der Abb. oben ausgewählt ist, starte man also versuchsweise

xterm -bg "#b55fbd"

Es hängt natürlich von den Sehgewohnheiten und vom Geschmack jedes Einzelnen ab, ob er nun diese Farbe zum individuellen Standard für alle seine X-Fenster macht oder doch besser schnell mit exit oder noch schneller mit Ctrl-D das psychodelische Xterm schließt.

!$Xorg: rgb.txt,v 1.3 2000/08/17 19:54:00 cpqbld Exp $
255 250 250             snow
248 248 255             ghost white
248 248 255             GhostWhite
245 245 245             white smoke
245 245 245             WhiteSmoke
220 220 220             gainsboro
255 250 240             floral white
255 250 240             FloralWhite
253 245 230             old lace
253 245 230             OldLace
250 240 230             linen
250 235 215             antique white
250 235 215             AntiqueWhite
255 239 213             papaya whip
255 239 213             PapayaWhip
255 235 205             blanched almond
255 235 205             BlanchedAlmond
255 228 196             bisque
255 218 185             peach puff
255 218 185             PeachPuff
255 222 173             navajo white
255 222 173             NavajoWhite
255 228 181             moccasin
255 248 220             cornsilk
255 255 240             ivory
255 250 205             lemon chiffon
255 250 205             LemonChiffon
255 245 238             seashell
240 255 240             honeydew
245 255 250             mint cream
245 255 250             MintCream
240 255 255             azure
240 248 255             alice blue
240 248 255             AliceBlue
230 230 250             lavender
255 240 245             lavender blush
255 240 245             LavenderBlush
255 228 225             misty rose
255 228 225             MistyRose
255 255 255             white
...

Es soll hier nicht verschwiegen werden, dass man sich trotz der Eindeutigkeit der RGB-Werte aber nicht darauf verlassen kann, dass die Farben immer so angezeigt werden, wie auf dem eignenen Bildschirm. Zum einen stehen dem X-Server u.U. nicht die volle Farbtiefe von 24bit ("TrueColor") zur Verfügung, so dass für die Darstellung eine möglichst ähnliche Ersatzfarbe gewählt wird; zum anderen fallen Farben auf verschiedenen Bildschirmen oft sehr unterschiedlich aus - besonders deutlich sind hier die Qualitätsschwankungen von TFT- bzw. Notebook-Displays.

Zum Schluss noch ein Tip zur Umrechnung von dezimalen in hexadezimalen Werten, hier als Beispiel wieder LightYellow2, also dezimal 238 238 209. Auf jedem Linux sollte man mit  bc den mächtigen Kommandozeilenrechner aufrufen können.
Dort setzt man mit
obase=16
das Ausgabeformat auf Hexadezimal und gibt dann die 3 Dezimalwerte folgendermaßen ein:
238;238;206     und erhält als Ergebnis
EE
EE
CE

Ein Ctrl-D bendet den Rechner. Die umgekehrte Richtung funktioniert übrigens mit ibase=16.
Man vergleiche nun   xterm -bg LightYellow2   und  xterm -bg "#eeeece".

Fontnamen

Ähnlich verhält es sich mit Fontnamen. Bei den Xterms der vorhergehenden Beispiele wurde die Schrift mit -fn 9x15 auf eine gut lesbare Größe eingestellt. Auch hier gilt, dass der Font immer vom X-Client angefordert wird und der X-Server sein Bestes tut, diesen zur Darstellung zu bringen. Die Fonts selbst hält der X-Server vor.
Allerdings ist das Thema "Schriftarten" bzw. "Fonts" um Kategorien komplexer als das Thema "Farben", da
  1. die Fontnamen meist einem komplizierten Schema folgen, das in der üblichen abgekürzten Form zu Verwechslungen führen kann - insbeondere dann, wenn X11 über Plattformgrenzen hinweg betrieben wird - und
  2. kein X-Server sämtliche möglichen Fonts vorrätig hat.
Die Zeichensätze verschiedener Sprachen, die Phantasie der Font-Designer und der technische Fortschritt erweitern das Font-Reservoir ständig. Darüber hinaus installieren einige X-Applikationen eigene, herstellerspezifische Fonts, die dann einem X-Server auf einem anderen Host nicht automatisch zur Verfügung stehen.

Mit dem Aufruf xlsfonts in einem Xterm erhält man die Liste sämtlicher Fonts, die der X-Server kennt - und einen ersten Eindruck vom Umfang dieses Gebiets. Anstatt die Details hier im Grundlagenteil auszuwälzen, ist dem Thema X11-Fonts ein eigenes Kapitel gewidmet.

Als Abschluss des Grundlagenteils folgen ein paar Erklärungen zur Fensterpositionierung.
Erste Schritte
     ©2005, 2007 Andreas Gottwald
Position und Größe