Pertanyaan ButtonMapping - Parameter posisi


Dalam file X file konfigurasi tombol mouse dapat dipetakan menggunakan opsi ButtonMapping:

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

Mengubah urutan angka mengubah perilaku tombol mouse. Namun saya tidak dapat menemukannya dokumentasi yang menggambarkan bagaimana perilaku tersebut ditetapkan. Apa sedikit dokumentasi ada, saya membantu menulis.

Misalnya, jika pemetaan tombol ditulis demikian:

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

Kami akan mendokumentasikan posisi ini sebagai:

  • Sebuah - Klik kiri
  • b - Tengah
  • c - Klik kanan
  • d - Gulir ke depan
  • e - Gulir mundur
  • f - Maju
  • g - Mundur
  • h - Gulungan horizontal
  • saya - Gulungan vertikal

Pertanyaan saya kemudian: apa nilai-nilai posisional dari Sebuah melalui saya  sebenarnya mewakili dan bagaimana kabarnya dipetakan ke tombol mouse?

Memperbarui

Lari xmodmap -pp menunjukkan:

$ 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

Ini tidak berguna karena tidak mengandung informasi a manusia dapat menggunakan atribut fisik mouse (yaitu, menampilkan dua kolom angka tidak berguna tanpa nama tombol, seperti "tombol kiri"). Jadi sementara secara teknis ini mungkin menjawab pertanyaan tentang "bagaimana mereka dipetakan", pertanyaannya tetap tidak terjawab dalam arti praktis.


11
2017-08-12 02:56


asal


AFAICG, nilainya adalah nomor tombol seperti yang dilaporkan oleh xev. Jadi, misalnya, dalam contoh Anda, tombol kanan atas Kensington Slimblade trackball saya adalah nomor 8, yang ditetapkan untuk gulir horizontal (kembali, di browser Web). - lfd


Jawaban:


Saya pikir Anda harus melihatnya dengan cara ini:

                        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
  • Posisi yang menunjukkan id kunci seperti yang dilaporkan oleh mouse (melalui driver). Jadi terserah kepada produsen bagaimana cara memesannya, namun kebanyakan tetap pada pesanan umum.

    Mouses masih menggunakan protokol lama seperti PS2, tidak memiliki cara menyimpan atau memberi tahu info tentang tombol yang tersedia dan fungsinya. Jadi server X tidak dapat memberi tahu Anda id dari setiap tombol fisik, hanya dengan mencoba mereka menggunakan alat seperti xev yang menunjukkan peristiwa X:

    xev -event mouse
    

    Atau evtest yang menunjukkan peristiwa mentah:

    sudo evtest
    
  • Kunci logis adalah yang benar-benar memetakan beberapa tempat untuk fungsi tambahan. Pada level ini, X melihat mereka sebagai: button1, button2, button3, button4, ..., button24 dan itu tidak mengetahui fungsi mereka.

Contoh referensi resmi:

  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.

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


1
2018-01-20 14:21



Ini informasi yang sangat bagus. Sayangnya, xmodmap -pp tidak menampilkan nama (misalnya, "tombol kiri", "tombol roda") untuk tombol fisik sesuai dokumentasi. Lihat pembaruan saya untuk pertanyaan itu. - Dave Jarvis
@DaveJarvis, memperbarui jawaban saya. mungkin: / kita harus menunggu generasi tikus berikutnya, yang pintar! atau mungkin tidak perlu mouse di masa depan. :) - user.dz
Atau database perangkat umum yang dapat diminta untuk memastikan nama untuk peta tombol mereka? - Dave Jarvis