ButtonMapping - Positionsparameter

11

In einer X-Konfigurationsdatei können Maustasten mithilfe einer ButtonMapping-Option zugeordnet werden:

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

Durch Ändern der Reihenfolge der Zahlen wird das Verhalten der Maustasten geändert. Ich kann jedoch keine Dokumentation finden , die beschreibt, wie das Verhalten zugewiesen wird. Was für eine kleine Dokumentation es gibt, habe ich mitgeschrieben.

Zum Beispiel, wenn die Schaltflächenzuordnung folgendermaßen geschrieben wurde:

    Option "ButtonMapping" "a b c d e f g h i"

Wir würden diese Positionen dokumentieren als:

  • a - Linksklick
  • b - Mitte
  • c - Rechtsklick
  • d - Scrollen Sie vorwärts
  • e - Scrollen Sie rückwärts
  • f - Vorwärts
  • g - Rückwärts
  • h - Horizontaler Bildlauf
  • i - Vertikale Schriftrolle

Meine Frage ist dann: Was tun , um die Positionswerte von a bis i tatsächlich darstellen und wie sie abgebildet auf Maustasten?

Aktualisieren

Laufende xmodmap -ppShows:

$ xmodmap -pp
There are 10 pointer buttons defined.

    Physical        Button
     Button          Code
        1              1
        2              2
        3              3
        4              4
        5              5
        6              6
        7              7
        8              8
        9              9
       10             10

Dies ist nicht sinnvoll, da es keine Informationen enthält, die ein Mensch über die physikalischen Eigenschaften der Maus verwenden kann (dh das Anzeigen von zwei Spalten mit Zahlen ist ohne Schaltflächennamen wie "linke Schaltfläche" nutzlos). Während dies technisch gesehen die Frage beantworten könnte, wie sie abgebildet werden, bleibt die Frage in praktischer Hinsicht unbeantwortet.

Dave Jarvis
quelle
AFAICG, die Werte sind die von xev gemeldeten Schaltflächennummern. So ist beispielsweise in Ihrem Beispiel die obere rechte Taste meines Kensington Slimblade-Trackballs die Nummer 8, die dem horizontalen Bildlauf zugewiesen ist (zurück, in Webbrowsern).
LFD

Antworten:

2

Ich denke, Sie sollten es so sehen:

                        1 2 3 4 5 6 7 8 9  <--position-- physical keys
Option "ButtonMapping" "1 9 3 4 5 6 7 8 2" <--function-- logical keys
  • Die Position, die die von der Maus (über den Treiber) gemeldete Schlüssel-ID angibt. Es liegt also beim Hersteller, wie er sie bestellt, die meisten halten sich jedoch an die übliche Bestellung.

    Mäuse, die immer noch die alten Protokolle wie PS2 verwenden, können keine Informationen über verfügbare Schaltflächen und deren Funktionen speichern oder weitergeben. Der X-Server kann Ihnen also nicht die ID jeder physischen Schaltfläche mitteilen, nur indem Sie sie mit einem solchen Tool ausprobieren xev, das die X-Ereignisse anzeigt:

    xev -event mouse
    

    Oder evtestdas zeigt die rohen Ereignisse:

    sudo evtest
    
  • Der logische Schlüssel sind diejenigen, die tatsächlich woanders für zusätzliche Funktionen zugeordnet sind. Auf dieser Ebene betrachtet X sie als: Taste1, Taste2, Taste3, Taste4, ..., Taste24 und kennt ihre Funktion nicht.

Offizielle Referenzbeispiele:

  7.  Configuration Examples

  This section shows some example InputDevice section for popular mice.
  All the examples assume that the mouse is connected to the PS/2 mouse
  port, and the OS supports the PS/2 mouse initialization.  It is also
  assumed that /dev/mouse is a link to the PS/2 mouse port.

  Logitech MouseMan+ has 4 buttons and a wheel. The following example
  makes the wheel movement available as the button 5 and 6.

  Section "InputDevice"
          Identifier      "MouseMan+"
          Driver          "mouse"
          Option          "Device"    "/dev/mouse"
          Option          "Protocol"  "MouseManPlusPS/2"
          Option          "Buttons"   "6"
          Option          "ZAxisMapping"      "5 6"
  EndSection

  You can change button number assignment using the xmodmap command
  AFTER you start the X server with the above configuration.  You may
  not like to use the wheel as the button 2 and rather want the side
  button (button 4) act like the button 2. You may also want to map the
  wheel movement to the button 4 and 5.  This can be done by the
  following command:

          xmodmap -e "pointer = 1 6 3 2 4 5"

  After this command is run, the correspondence between the buttons and
  button numbers will be as shown in the following table.

  Physical Buttons        Reported as:
  ------------------------------------
  1 Left Button             Button 1
  2 Wheel Button            Button 6
  3 Right Button            Button 3
  4 Side Button             Button 2
  5 Wheel Negative Move     Button 4
  6 Wheel Positive Move     Button 5


  Starting in the Xorg 6.9 release, you can also achieve this in your
  configuration file by adding this to the "InputDevice" section in
  xorg.conf:

          Option "ButtonMapping" "1 6 3 2 4 5"

  For the MS IntelliMouse Explorer which as a wheel and 5 buttons, you
  may have the following InputDevice section.

  Section "InputDevice"
          Identifier      "IntelliMouse Explorer"
          Driver          "mouse"
          Option          "Device"    "/dev/mouse"
          Option          "Protocol"  "ExplorerPS/2"
          Option          "Buttons"   "7"
          Option          "ZAxisMapping"      "6 7"
  EndSection

  The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to
  the Buttons option if you want to map the wheel movement to buttons (6
  and 7).  With this configuration, the correspondence between the
  buttons and button numbers will be as follows:

  Physical Buttons        Reported as:
  ------------------------------------
  1 Left Button             Button 1
  2 Wheel Button            Button 2
  3 Right Button            Button 3
  4 Side Button 1           Button 4
  5 Side Button 2           Button 5
  6 Wheel Negative Move     Button 6
  7 Wheel Positive Move     Button 7

  You can change button number assignment using xmodmap AFTER you
  started the X server with the above configuration.

          xmodmap -e "pointer = 1 2 3 4 7 5 6"

  The above command will moves the side button 2 to the button 7 and
  make the wheel movement reported as the button 5 and 6. See the table
  below.

  Physical Buttons        Reported as:
  ------------------------------------
  1 Left Button             Button 1
  2 Wheel Button            Button 2
  3 Right Button            Button 3
  4 Side Button 1           Button 4
  5 Side Button 2           Button 7
  6 Wheel Negative Move     Button 5
  7 Wheel Positive Move     Button 6

  For the A4 Tech WinEasy mouse which has two wheels and 3 buttons, you
  may have the following InputDevice section.

  Section "InputDevice"
          Identifier      "WinEasy"
          Driver          "mouse"
          Option          "Device"    "/dev/mouse"
          Option          "Protocol"  "IMPS/2"
          Option          "Buttons"   "7"
          Option          "ZAxisMapping"      "4 5 6 7"
  EndSection

  The movement of the first wheel is mapped to the button 4 and 5. The
  second wheel's movement will be reported as the buttons 6 and 7.

  The Kensington Expert mouse is really a trackball. It has 4 buttons
  arranged in a rectangle around the ball.

Quelle: ftp://ftp.x.org/pub/current/doc/mouse.txt

user.dz
quelle
Dies ist eine hervorragende Information. Leider werden xmodmap -ppdie Namen (z. B. "linke Taste", "Radtaste") für physische Tasten gemäß Dokumentation nicht angezeigt. Siehe mein Update zur Frage.
Dave Jarvis
@ DaveJarvis, hat meine Antwort aktualisiert. kann sein: / wir sollten auf die nächste Generation von Mäusen warten, kluge! oder möglicherweise wird in Zukunft keine Maus mehr benötigt. :)
user.dz
Oder eine öffentliche Datenbank mit Geräten, die abgefragt werden können, um Namen für ihre Schaltflächenzuordnungen zu ermitteln?
Dave Jarvis