仅切换左手鼠标(输入设备)上的按钮

仅切换左手鼠标(输入设备)上的按钮

我有两个 Logitech M650 鼠标,连接着 Debian 12 Gnome 44 机器。一种是“左撇子”鼠标。我想仅交换鼠标左键上的按钮,以便我可以使用食指作为主要单击。右键应保持不变。

当我cat /proc/bus/input/devices这里是结果时:

I: Bus=0005 Vendor=046d Product=b02a Version=0013
N: Name="Logitech Signature M650 L Mouse"
P: Phys=4c:1d:96:47:de:e2
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B02A.0022/input/input46
U: Uniq=d5:55:b1:dd:b7:7f
H: Handlers=mouse3 event15 
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=1943
B: MSC=10

I: Bus=0005 Vendor=046d Product=b02a Version=0013
N: Name="Logitech Signature M650 L Left-Handed Mouse"
P: Phys=4c:1d:96:47:de:e2
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B02A.0023/input/input47
U: Uniq=de:9d:c9:d8:74:fc
H: Handlers=mouse4 event16 
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=1943
B: MSC=10

有人能给我指出正确的方向吗?谢谢!

答案1

我有类似的设置:罗技的左手和右手鼠标:“M650 L”和“M650 L Left”。在我的系统上,“M650 L Left”不被识别为左手鼠标,因此我执行了以下操作。

在文件 $HOME/.xsession 中我放置了两行:

lefty=$(xinput | grep "Logitech.*Mouse" | grep -n pointer | grep ^2 | sed 's/^.*id=\([0-9]*\)[ \t].*$/\1/')
[[ $lefty ]] && xinput set-button-map $lefty 3 2 1 4 5 6 7 2 2

这是有效的,因为在我的系统上,左手鼠标始终是列表中的第二个。其他系统可能需要将“grep ^2”替换为“grep ^1”。

如果有人有更清洁的解决方案,我会很感兴趣。

答案2

这是检查和重新映射鼠标按钮的示例。

$ xinput get-button-map 10  #10 is the id of the pointer device
1 2 3 4 5 6 7

1 个左按钮、​​2 个中按钮、3 个右按钮等,用于禁用中间按钮(对应于 2)

$ xinput set-button-map 10 1 0

(如果要设置数字7,则需要输入前面的6)

核实:

$ xinput get-button-map 10
1 0 3 4 5 6 7

恢复它:

$ xinput set-button-map 10 1 2

相关内容