私はDebian 9(別名「Stretch」)x86_64を使用しています。
$ uname -a:
Linux mypc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
私のデバイスLogitech MU-007で追加ボタンをマップしようとしています。
$ lsusb | grep Logitech
Bus 001 Device 023: ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500]
x入力装置:
$ xinput | grep Logitech
⎜ ↳ Logitech USB Laser Mouse id=10 [slave pointer (2)]
xinput test 10
マウスの左側にある2つの追加ボタンをテストして8と9を返します。
$ xinput -version
xinput version 1.6.2
簡単なことを試しました。
xinput set-button-map 10 8 2 3
または
$ xmodmap -e "pointer = 9 2 3"
Warning: Only changing the first 3 of 12 buttons.
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 116 (X_SetPointerMapping)
Value in failed request: 0x9
Serial number of failed request: 9
Current serial number in output stream:
左ボタンはまったく機能せず、左クリックのように選択できません。
また、左クリックと追加ボタンを左クリックのままにしたいと思います。このコマンドが何も選択しない
理由をご存知ですか?xinput
編集する
ついに:
id=$(xinput list | grep -oP 'Logitech USB Laser Mouse.*id=\K\d+')
xinput set-button-map $id 1 2 3 4 5 6 7 1 1 10 11 12
ベストアンサー1
このコマンドが最初のマウスボタンの機能を物理ボタン#8にマッピングするとします。
xinput set-button-map 10 8 2 3
この仮定は正しくありません。実際、このコマンドは正反対に動作します。実際にイベントを「ボタン8」の別のインスタンスに送信するように物理ボタン#1を設定すると、「最初のマウスボタン」の動作を効果的に使用できなくなります。
物理ボタン#8を追加の「最初のマウスボタン」として使用するには、次の手順を実行する必要があります。
xinput set-button-map 10 1 2 3 4 5 6 7 1 9 10 11 12
デフォルトのマッピングはです1 2 3 4 5 6 7 8 9 10 11 12
。したがって、物理ボタン#8が最初のマウスボタンと同じように機能するようにするには、8
マッピングの数字を別の数字に置き換えます1
。
特定のボタンを完全に無効にするには、0
その物理ボタンに対応するスロットで使用してください。
ボタン4と5は通常、マウスホイールの上下の操作に対応します。