私は4つの物理ボタンを持つマウス(Kensington Slimblade Trackball)を持っています。これをABCDと呼びます。そして3つの軸(マウスX、Y、スクロールホイール)があります。
ボタンAとBはデフォルトでホームボタン(ボタン1)と右クリックボタン(ボタン3)で動作します。 A + Bを同時に押すと中央クリック(ボタン2)が生成されますが、これも素晴らしいです。
今私の目的に合わせてボタンCとDをマッピングしたいのですがA + Bシミュレーションとは別に、ボタンCをマッピングする方法が見つかりません。
デフォルトのボタンマッピングを使用して、次のマッピングを取得します。
physical buttons: A C B D
xinput button-map: 1 2 3 4 5 6 7 8 9 10 11 12
ボタンCを8にマップし、Dを9にマップしようとすると、xinput set-button-map
A + Bを押すとボタン8にもマップされます。
physical buttons: A C B D
xinput button-map: 1 8 3 0 0 0 0 9
^
A+B emulation becomes 8 too!
A + Bをボタン2にシミュレートしながら、ボタンCを任意のボタン番号にマッピングするにはどうすればよいですか?
Xinputより低いレベルで作業する必要がありますか?どのように?別のXinput設定を使用する必要がありますか?
evtest
編集:4つのボタンのコードは次のとおりです。
A:
type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
B:
type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
type 1 (EV_KEY), code 273 (BTN_RIGHT), value 1
C:
type 4 (EV_MSC), code 4 (MSC_SCAN), value ff000001
type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
D:
type 4 (EV_MSC), code 4 (MSC_SCAN), value ff000002
type 1 (EV_KEY), code 275 (BTN_SIDE), value 1
ベストアンサー1
最後に、Xorg evdevドライバをパッチしてEmulate3Buttonオプションを追加しました。このオプションは、中央ボタンエミュレーションで発生するボタン番号を設定します。 (メーリングリストにパッチを提出しましたが、近いうちにマージする必要があります。)
次に、次の設定を追加しました。
Section "InputClass"
Identifier "SlimBlade Trackball"
Driver "evdev"
Option "ButtonMapping" "1 8 3 4 5 6 7 9 0 2"
Option "Emulate3Button" "10"
EndSection
これにより、中央のボタンエミュレーションがボタン番号10をエクスポートし、ボタンCは8、Dは9、10は2にマップされます。望むより。