Benutzer-Werkzeuge

Webseiten-Werkzeuge


xinput

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
xinput [2020/09/15 17:31]
root [Anzeigen der Devices]
xinput [2020/09/15 21:19] (aktuell)
root [Persistent machen der Einstellungen]
Zeile 21: Zeile 21:
 </sxh> </sxh>
  
 +Hinweis: Einige Devices können 2 mal gelistet sein:
 +<sxh bash>
 + Virtual core pointer                    id=2 [master pointer  (3)]
 +⎜   ↳ ELECOM TrackBall Mouse HUGE TrackBall    id=13 [slave  pointer  (2)]
 +⎜   ↳ SynPS/2 Synaptics TouchPad              id=17 [slave  pointer  (2)]
 +⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
 +    ↳ ELECOM TrackBall Mouse HUGE TrackBall    id=20 [slave  keyboard (3)]
 +</sxh>
  
 +Hier taucht "ELECOM TrackBall Mouse HUGE TrackBall" 2 mal auf. \\
 +Die ID existiert immer nur für ein Device, der Name kann aber mehrfach auftreten.\\
 +Bei Nutzung des Namens muss ggf. dann "pointer:" oder "keyboard:" davor geschrieben werden (**Wichtig**: Ohne Leerzeichen zwischen Namen und Prefix).
 +\\ \\
 +Hinweis: Die IDs sind temporär und können sich nach dem Neustart von X oder dem System oder dem Ein-und Ausstecken des Devices oder bei Nutzung eines Tastaturumschalters ändern.
 ====== Listen der gesetzten Optionen für ein Device ======= ====== Listen der gesetzten Optionen für ein Device =======
  
Zeile 28: Zeile 41:
 <sxh bash> <sxh bash>
  
- xinput list-props 11+ xinput --list-props 11
  Device 'ELECOM TrackBall Mouse HUGE TrackBall':  Device 'ELECOM TrackBall Mouse HUGE TrackBall':
  Device Enabled (143): 1  Device Enabled (143): 1
Zeile 58: Zeile 71:
         libinput Horizontal Scroll Enabled (305):       1         libinput Horizontal Scroll Enabled (305):       1
 </sxh> </sxh>
 +
 +
 +====== Ermitteln von Button-Nummern =======
 +
 +  * [[xev]]
 +
 +
 +====== Setzen von Optionen für ein Device =======
 +
 +  * vermutlich sieht man alle möglichen Optionen für ein Device über xinput list-props
 +  * ansonsten kann man auch in man libinput unter "Supported Properties" schauen
 +
 +<code>
 +xinput --set-prop <Device-Name (in "") or ID> "Propertie to be set" <Value>
 +</code>
 +
 +Beispiel:
 +<sxh bash>
 +xinput --set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall"  "libinput Button Scrolling Button" 9
 +xinput --set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" "libinput Scroll Method Enabled" 0, 0, 1
 +</sxh>
 +
 +Obiges Beispiel nutzt den Device-Namen zum addressieren des Devices. Da der Name einmal von einem virtuellen Keyboard und einmal von einem Pointer verwendet wird muss man pointer: vor den Namen schreiben. \\ \\
 +Der erste Befehl definiert den Button 9 als "Scroll Button" - das drücken und gleichzeitige Bewegen des Trackballs (oder Maus) wird als Scrollen gewertet.\\
 +Der zweite Befehl aktiviert das Scrollen per Tastendruck und bewegen des Eingabegerätes. 
 +
 +
 +**Hinweis**: Bei Werten mit Komma, muss nach dem Komma zwingend ein Leerzeichen kommen!
 +
 +**Hinweis:**: Die Einstellungen sind temporär - bis X oder das System neugestartet wird, das Device herausgezogen und wieder eingesteckt wird oder per Tastaturumschalter zwischen Systemen gewechselt wird
 +
 +
 +====== Persistent machen der Einstellungen ======
 +
 +  * es gibt mehrere Wege
 +  * über Startscripte xinput aufzurufen (oder über Autostart des Desktop-Environments)
 +      * ist der einfachste
 +      * aber beim abziehen und wieder anstecken oder späterem anstecken wird das Device nicht konfiguriert mit den Einstellungen
 +
 +Im folgenden der Weg über eine xorg.conf bzw. eine Datei unter /etc/X11/xorg.conf.d:
 +
 +  * es können nicht die Namen der Einstellungen genommen werden die in xinput genutzt werden
 +      * man muss sich die Einstellung aus "man xorg.conf" raussuchen - Sektion "InputDevice"
 +      * oder (wenn es eine Option von libinput ist) aus "man libinput" Sektion "Configuration Details"
 +          * die Optionen heißen ähnlich, aber leicht anders als in xinput
 +
 +Eine Datei /etc/X11/xorg.conf.d/99-libinput.conf (das Verzeichnich xorg.conf.d muss ggf. angelegt werden, der Dateiname ist egal, muss auf .conf enden) könnte so aussehen:
 +<code>
 +Section "InputClass"
 +    Identifier  "ElcomHuge"
 +    MatchProduct    "ELECOM TrackBall Mouse HUGE TrackBall"
 +    MatchIsPointer "true"
 +    Driver "libinput" 
 +    Option  "ScrollMethod" "button" 
 +    Option  "ScrollButton" "9"
 +EndSection
 +</code>
 +
 +  * Identifier ist ein frei wählbarer Name
 +  * MatchProduct gibt an für welches Produkt die Konfig gilt - kann ggf. weggelassen werden, dann für alle
 +      * der name ist der aus xinput
 +  * MatchIsPointer ist ggf. wichtig wenn man das Device in xinput zweimal hat (einmal als Keyboard und einmal als Pointer) um zu unterscheiden welches der beiden Devices man konfiguriert
 +  * Driver "libinput" ist eventuell wichtig wenn sich die Einstellungen auf libinput beziehen
 +  * Option xyz sind wie oben beschrieben aus der man-Page von xorg.conf oder libinput
 +      * das Schema ist "Setting" "Wert"
 +
 +====== Beispiele =======
 +
 +===== Scrollen per Taste + bewegen des Trackballs/der Maus ======
 +
 +
 +  * man kann ein Scrollrad emulieren
 +  * man drückt eine Taste an der Maus/dem Trackball und bewegt den Trackball oder die Maus horizontal - die Bewegung wird als das Bewegen eines Scrollrades interpretiert
 +
 +<xsh bash>
 +xinput --set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall"  "libinput Button Scrolling Button" 9
 +xinput --set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" "libinput Scroll Method Enabled" 0, 0, 1
 +</xsh>
 +
 +Obiges Beispiel setzt Button 9 (zu ermitteln via xev) als Scroll-Button (Button der gedrückt werden muss damit die Bewegung als Scrollen erkannt wird) und aktiviert das Scrollen per Button + Bewegung im zweiten Schritt als (zusätzliche) Scroll-Methode.
 +\\ \\ \\
 +Ein xorg.conf-File (/etc/X11/xorg.conf.d/99-libinput.conf) könnte so aussehen für obige Konfiguration:
 +<code>
 +Section "InputClass"
 +    Identifier  "ElcomHuge"
 +    MatchProduct    "ELECOM TrackBall Mouse HUGE TrackBall"
 +    MatchIsPointer "true"
 +    Driver "libinput" 
 +    Option  "ScrollMethod" "button" 
 +    Option  "ScrollButton" "9"
 +EndSection
 +</code>
xinput.1600183893.txt.gz · Zuletzt geändert: 2020/09/15 17:31 von root