ButtonMapping - позиційні параметри


11

У файлі конфігурації X кнопки миші можна відобразити за допомогою параметра ButtonMapping:

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

Зміна порядку чисел змінює поведінку кнопок миші. Але я не можу знайти жодної документації, яка б описувала, як призначається поведінка. Що там мало документації , я допоміг написати.

Наприклад, якщо відображення кнопки було записане таким чином:

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

Ми б документували ці позиції як:

  • a - клацніть лівою кнопкою миші
  • б - середній
  • c - Клацніть правою кнопкою миші
  • d - Прокрутіть вперед
  • e - Прокрутіть назад
  • f - Вперед
  • г - назад
  • h - Горизонтальна прокрутка
  • i - вертикальна прокрутка

Моє питання: що тоді робити позиційні значення через I на насправді представляють і як вони відображаються на кнопки миші?

Оновлення

Запуск xmodmap -pp:

$ 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

Це не корисно, оскільки воно не містить інформації, яку людина може використовувати про фізичні атрибути миші (тобто показ двох стовпців цифр марний без імен кнопок, наприклад "ліва кнопка"). Отже, хоча технічно це може відповісти на питання "як вони відображаються", питання залишається без відповіді в будь-якому практичному сенсі.


AFAICG, значення - це номери кнопок, як повідомляється xev. Так, наприклад, у вашому прикладі у верхній правій кнопці трекболу Kensington Slimblade є номер 8, присвоєний горизонтальній прокрутці (назад, у веб-браузерах).
Леандро

Відповіді:


2

Я думаю, ви повинні подивитися на це так:

                        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
  • Позиція, яка вказує ідентифікатор ключа, як повідомляється мишею (через драйвер). Тому виробник залежить від їх замовлення, проте більшість дотримується загального порядку.

    Миші, які все ще використовують старі протоколи на зразок PS2, не мають можливості зберігати та не повідомляти інформацію про доступні кнопки та їх функції. Отже X-сервер не може вказати вам ідентифікатор кожної фізичної кнопки, лише спробувавши їх за допомогою такого інструменту, xevякий показує X події:

    xev -event mouse
    

    Або, evtestщо показує неофіційні події:

    sudo evtest
    
  • Логічний ключ - це ті, які насправді відображаються десь для додаткових функцій. На цьому рівні X розглядає їх як: button1, button2, button3, button4, ..., button24, і він не знає їх функції.

Офіційні довідкові приклади:

  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.

Джерело: ftp://ftp.x.org/pub/current/doc/mouse.txt


Це відмінна інформація. На жаль, xmodmap -ppне відображаються назви (наприклад, "ліва кнопка", "кнопка колеса") для фізичних кнопок відповідно до документації. Дивіться моє оновлення до питання.
Дейв Джарвіс

@DaveJarvis, оновив мою відповідь. може бути: / ми повинні чекати наступного покоління мишей, розумних! або в майбутньому може не виникати потреби у миші. :)
user.dz

Або загальнодоступна база даних пристроїв, на яку можна встановити запити, щоб визначити назви їх карт кнопок?
Дейв Джарвіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.