![仅切换左手鼠标(输入设备)上的按钮](https://linux22.com/image/223073/%E4%BB%85%E5%88%87%E6%8D%A2%E5%B7%A6%E6%89%8B%E9%BC%A0%E6%A0%87%EF%BC%88%E8%BE%93%E5%85%A5%E8%AE%BE%E5%A4%87%EF%BC%89%E4%B8%8A%E7%9A%84%E6%8C%89%E9%92%AE.png)
我有两个 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