在 Ubuntu 17.10 上禁用 Elan 触摸板和 xinput 上的中键单击

在 Ubuntu 17.10 上禁用 Elan 触摸板和 xinput 上的中键单击

我对 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。

现在,这起作用了,但也引发了一些我无法回答的问题。

  1. 为什么“中键单击启用”默认设置为 0,并且为什么 1 将其关闭?
  2. 什么是“默认中键单击启用”?为什么尝试设置它会出错?

编辑! 我想让它在重启后仍然有效,但遇到了一个问题。设备和道具 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

享受!

相关内容