キーボード、Linux経由でマウスボタンをマップする方法

キーボード、Linux経由でマウスボタンをマップする方法

私は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は通常、マウスホイールの上下の操作に対応します。

おすすめ記事