私は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]
xinputデバイス:
$ 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
私はより良い解決策を見つけました。 これにより、他のソリューションでは不可能なテンキーを保持できます。
マウスモード を切り替えるキーボードキーがあります。そのようにして、F1を左クリック、F2を中央クリック、F3を右クリックとして使用します。次に、特別なキーを使用してキーパッドに切り替えることができます。
特別なキーがこのスクリプトをトリガーします(WMキーボードショートカットの設定を確認してください)。
#!/bin/bash
if [[ ! -s ~/.button-state ]]; then
echo 0 > ~/.button-state
fi
state=$(<~/.button-state)
if ((state==0)); then
xkbset m
yad --notification xxx &
echo 1 > ~/.button-state
Elif ((state==1)); then
xkbset -m
pkill -f 'yad --notification xxx
echo 0 > ~/.button-state
else
echo >&2 "weird error"
exit 1
fi
マウスジェスチャーが有効な場合、システムトレイに次のアイコンが表示されます。
このコマンドは、最初のマウスボタンの機能を物理ボタン#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は通常、マウスホイールの上下操作に対応することに注意してください。