X構成ファイルでは、ButtonMappingオプションを使用してマウスボタンをマッピングできます。
Section "InputClass"
# ...
Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
# ...
EndSection
数字の順序を変更すると、マウスボタンの動作が変わります。しかし、動作がどのように割り当てられるかを説明する documentation は見つかりません。 小さなドキュメント があるので、執筆を手伝いました。
たとえば、ボタンマッピングが次のように記述されている場合:
Option "ButtonMapping" "a b c d e f g h i"
これらの位置を次のように文書化します。
私の質問:aからiの位置の値はどうするか- 実際に表す およびそれらはどのように mapped マウスボタンに?
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
これは、humanがマウスの物理的属性について使用できる情報が含まれていないため有用ではありません(つまり、「leftボタン")。そのため、技術的には「どのようにマッピングされているのか」という質問に答えるかもしれませんが、実際的な意味では質問は未回答のままです。
私はあなたがそれをこのように見るべきだと思う:
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
マウスによって(ドライバーを介して)報告されるキーIDを示す位置。そのため、それらの注文方法はメーカー次第ですが、ほとんどの場合、一般的な注文に固執します。
PS2などの古いプロトコルをまだ使用しているマウスには、使用可能なボタンとその機能に関する情報を保存したり、情報を伝える方法がありません。そのため、Xサーバーは、Xイベントを表示するxev
などのツールを使用して試してみて、各物理ボタンのIDを通知できません。
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.