22.5 /etc/X11/xorg.conf 

Kommen wir nun zu einem weiteren zentralen Thema: zur Konfigurationsdatei xorg.conf. Bei älteren Versionen des X-Window-Systems heißt diese Datei noch XF86Config. In beiden Fällen finden Sie diese Datei im Verzeichnis /etc/X11.
Die Datei ist dabei in verschiedene Sektionen (Sections) aufgeteilt, die wir einzeln besprechen werden. Sections beginnen mit dem Schlüsselwort Section, gefolgt vom Namen der Sektion. Eine Section wird durch das Schlüsselwort EndSection abgeschlossen. Untergeordnete Sections (SubSections) werden mit dem Schlüsselwort SubSection eingeleitet und mit EndSubSection abgeschlossen.
Wie in der Shell, so werden auch in dieser Datei Kommentare durch eine Raute (#) eingeleitet und gelten bis zum Ende einer Zeile. |
22.5.1 Section »Module« 

Das X-Window-System bietet die Möglichkeit, während des Startvorgangs Module dynamisch zu laden. Module sind dabei Erweiterungen der eigentlichen Grundsoftware, die allerdings nur bedingt Verwendung finden. Der Vorteil dieser Implementierung besteht darin, dass kein überflüssiger Erweiterungscode ausgeführt werden muss, den man nicht braucht bzw. benutzen will, man aber trotzdem auf keine Features verzichten muss. Zudem spart diese Modularität etwas Speicher, was aber nur historisch gesehen Vorteile hat. Module können durch SubSection-Optionen noch vorkonfiguriert werden.
Die Funktion einzelner Module erfahren Sie in der X.Org-Dokumentation – in der Regel müssen Sie in dieser Section keine Änderungen vornehmen. Die einzige öfters auftretende Ausnahmesituation ist die, dass das Modul glx nicht geladen wird. Das Modul sorgt für die OpenGL-Unterstützung in X11. Viele Programme, etwa einige Extensions des MP3-Players XMMS, machen von OpenGL Gebrauch.
Section "Module" Load "dbe" # Double buffer extension SubSection "extmod" Option "omit xfree86-dga" EndSubSection # This loads the font modules Load "type1" # Load "speedo" Load "freetype" # Load "xtt" # This loads the GLX module Load "glx" # This loads the DRI module # Load "dri" EndSection
Listing 22.10 Module-Section
22.5.2 Section »Files« 

In der Files-Section geht es darum, bestimmte Pfade mitzuteilen, in denen sich zum Beispiel Module, eine Farbdatenbank oder Schriftarten befinden. Normalerweise finden in dieser Section keine Veränderungen statt.
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/TTF/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/CID/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/local/" # FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" # FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" # FontPath "/usr/X11R6/lib/X11/fonts/freefont/" # ModulePath "/usr/X11R6/lib/modules" EndSection
Listing 22.11 Typische Files-Section
22.5.3 Section »ServerFlags« 

In dieser Section wird das Verhalten der Oberfläche konfiguriert. Die jeweiligen Kommentare über den Optionen sowie die Xorg.conf-Manpage verraten Ihnen, welche Funktion die einzelnen Optionen haben und welche zur Wahl stehen. Im Normalfall verändert man an dieser Section nichts.
22.5.4 Section »InputDevice« 

Die InputDevice-Section behandelt die Eingabegeräte Maus und Tastatur. Für jedes Gerät muss eine einzelne »InputSection« definiert werden. Es können übrigens mehrere Tastaturen und Mäuse gleichzeitig konfiguriert werden.
Als InputDevice können beispielsweise auch Spaceballs oder Touchscreens konfiguriert werden! Unter X11 müssen Sie also keineswegs auf solche Technik verzichten. Im Anhang finden Sie einen Abdruck der vorkonfigurierten »InputDevice«-Sections beider Hardwarekomponenten. |
Tastatur
In der Keyboard-Section wird die zu verwendende Tastatur konfiguriert. Den Treiber, den man für die Tastatur verwenden möchte (dieser ist auch für die Tastenbelegung zuständig), kann man über Driver angeben. In der Regel bedarf es aber auch hier wieder keiner Änderung. Viel interessanter ist da schon die Auswahl der Tastatur. Wenn man beispielsweise doch 105 (Option "XkbModel" "pc105") statt der geratenen 102-Tasten hat, kann man dies hier ändern. Außerdem kann die eben erwähnte Tastenbelegung über die Option XgbLayout angegeben werden. Für eine amerikanische Tastatur-Encodierung muss beispielsweise us, für die deutsche natürlich de angegeben werden.
Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "AutoRepeat" "500 30" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "de" EndSection
Listing 22.12 Typische »InputDevice«-Section
Maus
Es folgt die InputDevice-Section für die Maus. Zu sehen sind die bei der Konfiguration mit xorgconfig festgelegten Parameter wie der Treiber (Driver), das Protokoll (Protocol) und die Schnittstelle der Maus (Device).
Dritte Maustaste emulieren
Für die bereits bei der Konfiguration angesprochene Emulation der dritten Maustaste kann die Option Emulate3Buttons aktiviert werden. Dabei wird ein gleichzeitiges Drücken der beiden Maustasten als ein Klick mit der dritten Maustaste interpretiert. Der Zeitraum, der zwischen den beiden Tastenklicks existieren darf, um sie noch als Klick der dritten Maustaste zu interpretieren, wird mit Emulate3Timeout angegeben.
Mausrad
Die Benutzung eines Mausrades wird durch ZAxisMapping aktiviert.
Section "InputDevice" # Identifier and driver Identifier "Mouse1" Driver "mouse" Option "Protocol" "wsmouse" Option "Device" "/dev/wsmouse" # Option "Emulate3Buttons" # Option "Emulate3Timeout" "50" Option "ZAxisMapping" "4 5" EndSection
Listing 22.13 InputDevice-Section
22.5.5 Section »Monitor« 

Nun geht es an die Konfiguration des Monitors bzw. der Monitore. Später werden wir noch darauf zu sprechen kommen, X11 mit mehreren Monitoren gleichzeitig zu betreiben. Betrachten wir aber zunächst die Konfiguration des primären Monitors.
Angegeben werden hier lediglich der bereits erwähnte Identifier und die beiden Werte für die Horizontal- und Vertikalfrequenz des Monitors (HorizSync und VertRefresh). Die Angaben werden dabei generell in der Einheit (K)Hz interpretiert.
Section "Monitor" Identifier "My Monitor" HorizSync 31.5 – 82.0 # KHz VertRefresh 50-90 # Hz EndSection
Listing 22.14 Monitor-Section
22.5.6 Section »Device« 

Nun folgt die Konfiguration der Grafikkarte. Sind mehrere Monitore vorhanden, so braucht man für diese oft mehrere Grafikkarten. Daher erlaubt Ihnen X11, auch mehrere Grafikkarten (jeweils repräsentiert durch eine Device-Section) zu konfigurieren.
Was immer laufen sollte, ist der VGA-Treiber. Diesen kann man dann später durch den Identifier »Standard VGA« in der Screen-Section einbauen, auf die wir gleich zu sprechen kommen.
Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" Driver "vga" # VideoRam 256 EndSection
Listing 22.15 VGA-Karte
Die Bezeichnungen der einzelnen Attribute sprechen für sich. Wichtig ist jedoch zu wissen, dass die Angaben des Grafikkartenspeichers (VideoRam) in KByte erfolgen. Eine übliche Standard-VGA-ISA-Grafikkarte hat tatsächlich nur 256 KB Speicher. Die Grafikkarte, die Sie mittels xorgconfig konfigurieren, wird selbstverständlich auch automatisch in die xorg.conf eingetragen.
# Device configured by xorgconfig: Section "Device" Identifier "RIVA TNT2" Driver "nv" EndSection
Listing 22.16 Eine weitere Grafikkarte
Sollten Sie mit VMware arbeiten, kann übrigens der VMware SVGA-Treiber verwendet werden, den Sie ebenfalls in der Grafikkartenauswahl während des Setups im Listing finden. Sie können aber auch einfach als Treiber vmware angeben und gegebenenfalls einen Blick in die zugehörige Manpage werfen. |
22.5.7 Section »Screen« 

In der vorletzten Section, der Screen-Section, wird die Bildschirmanzeige konfiguriert. Hier wird eine Bildschirmanzeige einer Grafikkarte (Device) und einem Monitor (Monitor) zugeordnet.
Es gibt verschiedene Konfigurationen für eine Bildschirmanzeige. Diese sind von der Farbtiefe abhängig – in der Regel sind das die Werte 8, 16 und 24. Die standardmäßig beim Start zu verwendende Farbtiefe wird über DefaultDepth angegeben.
Für jede Farbtiefe gibt es wiederum eine Display-Subsection. In dieser wird primär festgelegt, welche Auflösungen verwendet werden sollen; die Standardauflösung sollte dabei zuerst aufgelistet sein.
Die folgende Grafikkarte wird also nach dem Start, wenn alles glattgeht, mit einer Farbtiefe von 24 Bits und einer Auflösung von 1280 x 1024 Pixel initialisiert.
Section "Screen" Identifier "Screen 1" Device "RIVA TNT2" Monitor "My Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x1024" "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1280x1024" "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1280x1024" ViewPort 0 0 EndSubsection EndSection
Listing 22.17 Screen-Section
22.5.8 Section »ServerLayout« 

Die ServerLayout-Section hat die Aufgabe, alle Eingabe- und Ausgabedefinitionen zusammenzubinden, damit X11 letztlich auch weiß, welche Grafikkarte, welche Maus, welcher Monitor, welche Bildschirmanzeige und welche Tastatur überhaupt verwendet werden sollen.
Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection
Listing 22.18 Eine typische ServerLayout-Section
Wie Sie sehen, werden hier einfach die oben angegebenen Identifier verwendet.
22.5.9 Optionale Sections 

Es stehen noch einige weitere Sections zur Verfügung, die bei Bedarf verwendet werden können. Dazu zählt beispielsweise die DRI-Section, die zusätzliche Informationen für die »direkte Rendering-Infrastruktur« liefert, oder die Vendor-Section, die zusätzliche herstellerspezifische Informationen bereitstellt.
... und dann gibt es noch die sogenannte VideoAdaptor-Section, bei der wir einfach einmal die xorg.conf-Manpage von OpenBSD zitieren:
VIDEOADAPTOR SECTION Nobody wants to say how this works. Maybe nobody knows ...
Listing 22.19 VideoAdaptor-Section