我最近在 Dell Inspiron 7559 笔记本电脑上下载了 Ubuntu,我发现防手掌误触功能出现了问题。该软件部分工作正常;当我尝试用手掌使用触控板时,光标不会移动,因此它清楚地识别了我的手掌,但当我将手掌放在触控板上时(不一定是轻敲,只是放在那里),会自动发生点击。这会导致窗口消失,所以我必须寻找它们才能恢复它们。
这是一个特别奇怪的问题,我还没找到其他人遇到过。我双启动 Windows 和 Ubuntu,启动 Windows 10 时没有遇到此问题。那么我可以更改设置或更新驱动程序吗?任何帮助都将不胜感激。
编辑:
我使用 xinput 列表检查了我的设备,发现我显然有 2 个触摸板输入:
↳ ELAN1010:00 04F3:3012 触摸板 id=12 [从属指针 (2)]
↳ ETPS/2 Elantech 触摸板 id=14 [从属指针 (2)]
那么操作系统是否监听了错误的驱动程序?如果是这样,我该如何让它使用正确的驱动程序?
答案1
首先,您需要找到触摸板驱动程序。您可以在终端下输入以下内容:
xinput
您将在那里收到驱动程序列表。在列表虚拟核心指针下,查找关键字 TouchPad。该变量将是 {id},例如我的是“SynPS/2 Synaptics TouchPad”。
接下来进入启动应用程序偏好设置,选择“添加”,你可以随意输入名称,我使用了“Palm Detection”,对于 cmd 你想输入的是:
xinput set-prop "{id}" "Synaptics Palm Detection" 1
另外,添加另一个来设置尺寸。将其命名为“Palm Dimensions”(您可以根据需要替换该值,您可能希望使用该值来获得最佳体验):
xinput set-prop "{id}" "Synaptics Palm Dimensions" 3, 3
现在您可以重新启动笔记本电脑并祝您好运:)
PS 我认为正确的触摸板 ID 是以 ETPS/2 开头的。如果不是,您可以尝试两者,希望这样可以奏效。
答案2
对于我的 XPS 13 2017 和 Ubuntu 16.04,解决方案是安装dconf-editor
并转到
org > gnome > desktop > peripherals > touchpad
并设置click-method
为fingers
或如果该键disable-while-typing
可用,则将其设置为true
。
另一个解决方案是转到 添加新快捷方式Keyboard > Shortcuts > Custom Shortcuts
。我的快捷方式是
Ctrl + Shift + M -> gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
Ctrl + Shift + N -> gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false
因此,无论何时您想要启用点击功能,只需按Ctrl+ Shift+M和Ctrl+ Shift+N即可禁用它。
答案3
对我来说,上述所有解决方案都不起作用。因此,如果有人处于类似情况,这可以帮助减少触摸板在边缘的激活区域。这不会产生任何负面影响,因为您很少从边缘开始点击,并且当触摸触摸板时,您仍然可以使用边缘的区域。可以这样做:
首先,使用此 ( xinput list-props "ETPS/2 Elantech Touchpad"|grep Edges
) 获取触摸板边缘尺寸。它返回 4 个值(左、右、上、下),例如Synaptics Edges (274): 100, 2408, 71, 1249
其次,这些值可以像这样使用:
synclient AreaTopEdge=71
synclient AreaLeftEdge=100
synclient AreaRightEdge=2408
答案4
如果你有一台现代戴尔笔记本电脑,这些说明可能会有所帮助。它们直接来自戴尔,Precision/XPS:Ubuntu 常规触摸板/鼠标问题修复
第一部分对我来说很神奇。这是他们建议添加到的脚本sudo gedit /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf
。我不建议遵循已接受答案的解决方案,因为该路线似乎会产生其他问题。
# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
为了进行兼容性比较,我有一台戴尔 Inspiron 13 7000 系列xinput list
jonathan@Dell:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=11 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=13 [slave pointer (2)]
⎜ ↳ DELL0741:00 06CB:7E7E Touchpad id=14 [slave pointer (2)]
...
Synaptics 不在该列表中,因为它已被上述脚本禁用。在添加此脚本之前,我建议运行xinput --test <id>"
(对我来说14
)。如果您在终端上收到输出,则表示您的设备正在运行(您的设备处于“开启”状态)。