Nút MapMapping - Tham số vị trí


11

Trong tệp cấu hình X, các nút chuột có thể được ánh xạ bằng tùy chọn Nút Bản đồ:

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

Thay đổi thứ tự của các số thay đổi hành vi của các nút chuột. Tuy nhiên, tôi không thể tìm thấy bất kỳ tài liệu nào mô tả cách thức hành vi được chỉ định. Những gì tài liệu nhỏ có, tôi đã giúp viết.

Ví dụ: nếu ánh xạ nút được viết như vậy:

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

Chúng tôi sẽ ghi lại các vị trí này như:

  • a - Nhấp chuột trái
  • b - Trung
  • c - Nhấp chuột phải
  • d - Di chuyển về phía trước
  • e - Cuộn lùi
  • f - Chuyển tiếp
  • g - lạc hậu
  • h - Cuộn ngang
  • i - Cuộn dọc

Câu hỏi của tôi sau đó: các giá trị vị trí của a thông qua tôi thực sự đại diện cho cái gì và chúng được ánh xạ tới các nút chuột như thế nào?

Cập nhật

Chạy xmodmap -ppchương trình:

$ 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

Điều này không hữu ích vì nó không chứa thông tin mà con người có thể sử dụng về các thuộc tính vật lý của chuột (nghĩa là hiển thị hai cột số là vô dụng nếu không có tên nút, chẳng hạn như "nút bên trái"). Vì vậy, về mặt kỹ thuật, điều này có thể trả lời cho câu hỏi "chúng được lập bản đồ như thế nào", câu hỏi vẫn chưa được trả lời theo bất kỳ ý nghĩa thực tế nào.


AFAICG, các giá trị là số nút như được báo cáo bởi xev. Do đó, ví dụ, trong ví dụ của bạn, nút trên cùng bên phải của trackball Kensington Slimblade của tôi là số 8, được gán cho cuộn ngang (trở lại, trong các trình duyệt Web).
lfd

Câu trả lời:


2

Tôi nghĩ bạn nên nhìn nó theo cách này:

                        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
  • Vị trí chỉ ra id khóa như được báo cáo bởi chuột (thông qua trình điều khiển). Vì vậy, tùy thuộc vào nhà sản xuất làm thế nào để đặt hàng chúng, tuy nhiên hầu hết đều tuân theo trật tự chung.

    Các bà mẹ vẫn sử dụng các giao thức cũ như PS2, nó không có cách lưu trữ hoặc cho biết thông tin về các nút có sẵn và chức năng của chúng. Vì vậy, máy chủ X không thể cho bạn biết id của từng nút vật lý, chỉ bằng cách thử chúng bằng cách sử dụng một công cụ như xevhiển thị các sự kiện X:

    xev -event mouse
    

    Hoặc evtestđiều đó cho thấy các sự kiện thô:

    sudo evtest
    
  • Khóa logic là những cái thực sự được ánh xạ một số nơi khác cho các chức năng bổ sung. Ở cấp độ này, X nhìn chúng như: button1, button2, button3, button4, ..., button24 và nó không biết chức năng của chúng.

Ví dụ tham khảo chính thức:

  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.

Nguồn: ftp://ftp.x.org/pub/cản/doc/mouse.txt


Đây là thông tin tuyệt vời. Thật không may, xmodmap -ppkhông hiển thị tên (ví dụ: "nút bên trái", "nút bánh xe") cho các nút vật lý theo tài liệu. Xem cập nhật của tôi cho câu hỏi.
Dave Jarvis

@DaveJarvis, cập nhật câu trả lời của tôi. có thể là: / chúng ta nên chờ đợi thế hệ chuột tiếp theo, những con thông minh! hoặc có thể không cần chuột trong tương lai. :)
user.dz

Hoặc một cơ sở dữ liệu công khai của các thiết bị có thể được truy vấn để xác định tên cho bản đồ nút của chúng?
Dave Jarvis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.