我朋友昨天买了一个罗技M560鼠标(你可以看看这里) 并在她的 Ubuntu 系统上试用。它似乎是一个相对较新的型号,因此除了罗技自己的网站外,任何地方都没有关于它的信息。按键映射已关闭,但我认为重新映射按钮很容易 - 过去十年来,我一直在使用各种罗技鼠标这样做。但是,与其他鼠标不同,您必须说将按钮 13 与按钮 2 切换,这款鼠标会发送一些按键事件,就像您在键盘上打字一样。
鼠标有左键和右键、可倾斜的滚轮(4 个按钮)、侧面的后退和前进按钮,以及滚轮后面的一个小方形按钮 - 总共有 9 个按钮。按下滚轮不会起到中键单击的作用,滚轮下方没有开关。相反,按下滚轮会接合和解除锁定,使其可以分步或自由旋转。
我想让所有“常用”按钮都能完成它们应有的功能,并将中间单击操作映射到方向盘后面的小按钮上,因此我首先从 xev 和 xinput 开始识别哪个是哪个:
按钮 1 -> 左键单击 按钮 3 -> 右键单击 按钮 4 -> 向上滚动滚轮 按钮 5 -> 向下滚动滚轮 按钮 8 -> 向左倾斜 按钮 9 -> 向右倾斜
奇怪的是:按下前进按钮相当于按下 Super_R(键码 134)。按下后退按钮则同时产生 Super_L 和 d(键码 133 和 40)。
更奇怪的是:按一次方形按钮,会同时提供 Alt_L、Super_L 和 XF86TouchpadOff(键码 64、133、201)。第二次按下它就像按下按钮 1 一样......
因此,前六个按钮发送按钮按下/释放事件,而其他三个按钮发送多个按键按下/释放事件。
将鼠标按钮映射到键盘键码相对容易,但是否可以在不影响系统键盘的情况下执行相反的操作?我是否应该联系 kernel.org 的人员来添加对鼠标的支持?
答案1
您可以通过 udev 重新映射按键。鼠标充当键盘。这里有一个解决方法: https://bugzilla.redhat.com/show_bug.cgi?id=1035668
答案2
这是我的配置:
~$ cat .xbindkeysrc |egrep -v "^$|^#"
"xte 'mouseclick 2'"
m:0x50 + c:134
这样,如果做出“工作“中间的按钮。
我按住右键选择需要复制/粘贴的文本,选择粘贴位置后单击按钮。如果需要再次粘贴相同的文本,由于方形按钮每次不会引发相同的事件,我会快速单击两次。
如果您选择另一个文本,则从方形按钮分散的事件始终是使 xte 模拟中间单击的事件。
虽然不完美,但比根本没有中键点击要好。
答案3
很抱歉我是这样的人,但请忍耐一下。我已经在多台机器上使用过 Logitech 鼠标和指点设备,包括 Windows、Linux 和两者,都没有问题。即使是宣传为 Windows 8 设备的 T650 触摸板,在更新固件后也可以在 Linux 上正常工作。如果不进行一些相当过分的黑客攻击,M560 根本无法在 Windows 以外的任何系统中 100% 正常工作。您可以换一台较旧/可以正常工作的型号,或者您可以退款,因为从包装上根本看不出鼠标与 Windows 以外的任何系统都不兼容,但我真的不建议在它上面花太多时间。
我个人将我的 M560 放到了不经常使用鼠标的 HTPC 中。
答案4
现在是 2018 年,我的 KDE Fedora 25、内核 4.13.16-100.fc25.x86_64 和 M560 中间方形按钮开箱即可用作普通中间按钮(按钮 2)。