我对 GNOME(在 X 上,没有 wayland)和 Ubuntu 17.10 非常满意,除了我的触摸板上默认设置的中键单击。我总是误按它,并且中键单击似乎在每个应用程序中都被映射到“做一些疯狂的事情”。我真的需要禁用它。
我使用的是 2017 款联想 Yoga,配有 Elan 触控板。我使用的是 libinput,但未安装 synaptics 驱动程序。我找到的所有解决方案都参考了 synaptics。我尝试过这种方法,但它让触控板变得更糟,所以我想避免这种情况。
答案1
当然,我发完帖子就明白了 :) 把答案放在这里,以防别人看到这个
查找您的触摸板 ID:
adam@adam720:~$ xinput list | grep -i elan
⎜ ↳ ELAN0651:00 04F3:3052 Touchpad id=14 [slave pointer (2)]
找到中键单击属性的 ID:
adam@adam720:~$ xinput --list-props 14 | grep -i middle
libinput Middle Emulation Enabled (320): 1
libinput Middle Emulation Enabled Default (321): 0
切换鼠标中键单击属性。在我的例子中,它被设置为 0,因此我将其设置为 1:
adam@adam720:~$ xinput --set-prop 14 320 1
在上面的例子中,14 是触摸板的 ID,320 是属性的 ID。
现在,这起作用了,但也引发了一些我无法回答的问题。
- 为什么“中键单击启用”默认设置为 0,并且为什么 1 将其关闭?
- 什么是“默认中键单击启用”?为什么尝试设置它会出错?
编辑! 我想让它在重启后仍然有效,但遇到了一个问题。设备和道具 ID 在启动时会发生变化。因此,我编写了一个脚本,用于查找设备和道具 ID,然后相应地将中间按钮道具设置为关闭。我怀疑其他人是否还会需要它,但以防万一,我把脚本放在了github
答案2
您可以在 xorg.conf.d 中编辑触摸板配置
Option "MiddleEmulation" "1"
http://manpages.ubuntu.com/manpages/disco/en/man4/libinput.4.html
答案3
除了 Adam 的解决方案之外,以下单行代码还可标识 TouchPad 的 id(假设它是 Synaptics TouchPad)并且禁用中键单击(通过将其设置为 1):
xinput set-prop `xinput list | grep 'Synaptics TouchPad' | grep -oP '(?<=id=)[0-9]+'` "libinput Middle Emulation Enabled" 1
享受!