staging.inyokaproject.org

xorg.conf.d

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/Oxygen/X.png Der XServer konfiguriert sich weitgehend automatisch und selbstständig ("natives Plug and play"). Eingabegeräte können im laufenden Betrieb hinzugesteckt und sofort benutzt werden, ohne dass Anpassungen an der /etc/X11/xorg.conf nötig wären oder die grafische Oberfläche neu gestartet werden müsste.

Geräteklassentreiber können bei Bedarf dynamisch nachgeladen und wieder entladen werden. Gesteuert wird dieses über zusätzliche Dateien im Verzeichnis /usr/share/X11/xorg.conf.d/. Verzeichnis und Dateien müssen dafür ggf. erst angelegt werden.

Die Installation liefert bereits einige generische Dateien mit, mit denen die wichtigsten Funktionen der meisten Eingabegeräte bereits funktionieren sollten. Dieser Artikel beschreibt, wie man in den Konfigurationsprozess eingreifen und Feinabstimmung betreiben kann.

Überblick

Die hier beschriebene Methode ersetzt die ehemalige Konfiguration mittels .fdi-Dateien über HAL vollständig. Sie erbt aber die folgenden Beschränkungen:

  • Es können nur globale Einstellungen gemacht werden, die für alle Nutzer gleichermaßen gelten.

  • Die Einstellungen werden nur beim Start des XServers und bei Hinzufügen eines Gerätes gesetzt.

Will man zur Laufzeit Einstellungen für den angemeldeten Nutzer vornehmen, kann man auf das hierfür vorgesehene xinput zurückgreifen oder eines der speziellen grafischen Werkzeuge unter "System → Einstellungen → Maus bzw. Tastatur" nutzen.

Prinzip

Nach der früher gebräuchlichen Datei /etc/X11/xorg.conf, die nur beim Start des X-Servers eingelesen wird, existieren ein Verzeichnis /usr/lib/X11/xorg.conf.d/ bzw. seit Ubuntu 10.10 /usr/share/X11/xorg.conf.d/, dessen enthaltene Konfigurationsdateien bei jedem Hinzustecken eines Eingabegerätes eingelesen werden. Vom Aufbau ähneln diese der alten xorg.conf, jedoch mit 3 wichtigen Unterschieden:

  • Es gibt einen oder mehrere Abschnitte vom Typ InputClass. In diesen können die gleichen Optionen wie für die InputDevice-Abschnitte benutzt werden.

  • Die Einstellungen gelten zunächst immer für alle Eingabegeräte. Einschränkungen werden über die Werte neuer Schlüssel der Art MatchProduct, MatchIsPointer, MatchTag, etc. vorgenommen.

  • Die Einstellungen für ein spezifisches Gerät ergibt sich aus der Gesamtmenge aller passenden InputClass-Abschnitte.

Alle Dateien im xorg.conf.d-Verzeichnis werden in lexikalischer Reihenfolge abgearbeitet. Später gelesene Werte überschreiben frühere. Dies löst unter Umständen Konflikte bei widersprüchlichen Werten für die gleiche Option eines Geräts aus. Konfigurationen mit großer Streubreite sollten daher am Anfang stehen, die dann durch nachfolgende Einstellungen erweitert oder überschrieben werden können.

Da im Auslieferungszustand Ubuntus verwendete Dateinamen teils mit Zahlen von 10 oder kleiner beginnen, sollte man eigene Konfigurationsdateien, die in der Regel speziell für ein Gerät geschrieben werden, mit einer größeren Zahl beginnen lassen, z.B. mit 20.

Hinweis:

Man sollte grundsätzlich neue Dateien anlegen und nicht die bestehenden ändern. Dies hat neben der besseren Übersicht den Vorteil, eigene Anpassungen bei Nichtgefallen mittels Löschen der Datei schnell wieder loszuwerden.

Syntax

Grundgerüst einer Datei im xorg.conf.d-Verzeichnis:

1
2
3
4
5
6
7
8
Section "InputClass"
	Identifier	"Name"
	[Driver		"Treiber"]
	… [Klauseln]
	… [Optionen]
EndSection

… [Weitere InputClass-Abschnitte]

Der nötige Treiber für ein Eingabegerät ist den allermeisten Fällen durch die mitgelieferten Dateien bereits korrekt gesetzt. Aufgrund der oben beschrieben Regeln muss er daher nicht wiederholt werden. In der Regel muss man nur die Optionen den eigenen Wünschen entsprechend setzen. Die erlaubten Werte sind die gleichen wie für die „normalen“ InputDevice-Abschnitte in der xorg.conf.

Hilfe hierzu findet man auf den man-Pages von xorg.conf und evdev bzw. dem alternativ eingesetzten Treiber (synaptics, wacom, etc.).

Wichtig ist der Abschnitt mit den Klauseln, diese schränken die Gültigkeit der gesetzten Werte auf passende Geräte ein. Erkannt werden folgende Schlüssel:

  • MatchIsKeyboard "bool"
    MatchIsPointer "bool"
    MatchIsJoystick "bool"
    MatchIsTablet "bool"
    MatchIsTouchpad "bool"
    MatchIsTouchscreen "bool"
    Testet auf die entsprechende Geräteklasse; bool steht für einen Wahrheitswert:

    • "1", "on", "true" für "ja",

    • "0", "off", "false" für "nein".

  • MatchProduct "matchproduct"
    Testet, ob der Substring matchproduct im Gerätenamen auftaucht.

  • MatchVendor "matchvendor"
    Testet, ob der Substring matchvendor im Namen des Geräteherstellers auftaucht.

  • MatchDevicePath "matchdevice"
    Testet, ob der Pfad zur Gerätedatei matchdevice entspricht. Ein "*" kann als Auslassungszeichen genutzt werden.

  • MatchTag "matchtag"
    Testet, ob mindestens eins der automatisch vergebenen Tags matchtag entspricht.

Bei allen letztgenannten Klauseln kann das "|"-Symbol genutzt werden, um verschiedene mögliche Werte voneinander abzutrennen, z.B. MatchVendor "Logitech|Microsoft".

Neben den treiberspezifischen Optionen existiert eine spezielle Option, die den X-Server anweist, das Gerät vollständig zu ignorieren:

  • Option "Ignore" "true"

Das ist nützlich, falls Eingaben über dieses Gerät von einem anderen Programm verarbeitet werden, z.B. Lirc bei Infrarot-Empfängern, oder das Gerät nicht zur Steuerung des Mauszeigers verwendet werden soll, z.B. Beschleunigungssensoren.

Beispiel

Hinweis:

Da aufgrund des regelbasierten Ansatzes nur Eingabegeräte konfiguriert werden, die auch tatsächlich vorhanden sind, können folgende Beispieldateien ohne Bedenken in das eigene System eingebunden werden.

Mausrad-Emulation von Trackpoints

Die folgende Konfigurationsdatei aktiviert die Scrollfunktion des TrackPoints auf IBM/Lenovo ThinkPads standardmäßig. Die Datei sollte als /usr/share/X11/xorg.conf.d/50-thinkpad-trackpoint.conf gespeichert werden.

1
2
3
4
5
6
7
8
9
Section "InputClass"
	Identifier	"ThinkPad TrackPoint"
	MatchProduct	"TPPS/2 IBM TrackPoint"
	MatchDevicePath	"/dev/input/event*"
	Option		"EmulateWheel"		"true"
	Option		"EmulateWheelButton"	"2"
	Option		"XAxisMapping"		"6 7"
	Option		"YAxisMapping"		"4 5"
EndSection

Da die gesetzten Optionen Eigenschaften des Allzwecktreibers evdev sind, kann diese Datei auch für TrackPoints anderer Hersteller verwendet werden. Dazu muss die Zeile mit MatchProduct entsprechend angepasst werden. Da für den TrackPoint mehrere Gerätedateien angelegt werden (auch /dev/input/mouse*), sorgt die Zeile mit MatchDevicePath dafür, die Einstellungen nur einmal für die korrekte Gerätedatei zu verwenden. Der X-Server erkennt und ignoriert solche Mehrfach-Gerätedateien allerdings automatisch, daher könnte die Zeile auch gelöscht werden.

Mausachsen invertieren

Die folgende Konfiguration invertiert die Mausachsen für die »Wireless Mouse Wireless Mouse«. Die Datei sollte als /usr/share/X11/xorg.conf.d/50-invertaxes.conf gespeichert werden.

1
2
3
4
5
6
7
Section "InputClass"
	Identifier	"Mausachsen invertieren"
	MatchProduct	"Wireless Mouse Wireless Mouse"
	MatchDevicePath	"/dev/input/event*"
	Option		"InvertY"		"true"
	Option		"InvertX"		"true"
EndSection

Bildlauf mit Zwei Fingern

Die folgende Konfiguration aktiviert den Bildlauf mit zwei Fingern auf neueren Synaptics-Touchpads. Die Datei sollte als /usr/share/X11/xorg.conf.d/50-twofingerscroll.conf gespeichert werden.

1
2
3
4
5
6
7
8
Section "InputClass"
	Identifier	"Zwei-Finger-Bildlauf für Touchpads einschalten"
	MatchProduct	"SynPS/2 Synaptics TouchPad"
	MatchDevicePath	"/dev/input/event*"
	Option		"VertTwoFingerScroll"	"on"
	Option		"EmulateTwoFingerMinW"	"8"
	Option		"EmulateTwoFingerMinZ"	"40"
EndSection

Die richtige Bezeichnung für „MatchProduct“ kann mittels xinput list ermittelt werden. Sehr viele weitere Optionen für Synaptics-Touchpads findet man auf der man-Page des Treibers (man synaptics).

Diese Revision wurde am 2. Mai 2021 12:12 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Installation, XServer, ungetestet