我知道关于这个问题还有其他问题,但我找不到正确的调整来解决它。
输入内容时,触摸板仍会检测到我的手掌。这真的很烦人,尤其是因为它破坏了我全新的戴尔 XPS 黄金版的工作效率。这是一个全新的 Ubuntu 14.04 安装,我不想尝试尝试最终会破坏触摸板识别的脚本和东西。
我尝试使用 syndaemon,因为它看起来是解决此错误的最佳方法:
syndaemon -i 0.5 -d
Run Code Online (Sandbox Code Playgroud)
当我在终端上尝试时,只要我不从会话中注销,它似乎就可以工作。
但是,如果我将命令放在我的启动程序实用程序上,然后重新启动,光标总是在一两分钟后冻结。所以我必须使用我的键盘取消选中该命令,然后我又回到了这个非常烦人的手掌检测问题。有什么解决办法吗?
关于我的系统的一些信息:
greguti@greguti-XPS13-9333:~$ xinput list
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? SYNAPTICS Synaptics Large Touch Screen id=9 [slave pointer (2)]
? ? SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
? Virtual core keyboard id=3 [master keyboard (2)]
? Virtual core XTEST keyboard id=5 [slave keyboard (3)]
? Power Button id=6 [slave keyboard (3)]
? Video Bus id=7 [slave keyboard (3)]
? Power Button id=8 [slave keyboard (3)]
? Integrated_Webcam_HD id=10 [slave keyboard (3)]
? AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
? Dell WMI hotkeys id=13 [slave keyboard (3)]
greguti@greguti-XPS13-9333:~$ xinput list-props "SynPS/2 Synaptics TouchPad" | grep -i finger
Synaptics Finger (288): 25, 30, 0
Synaptics Two-Finger Pressure (294): 282
Synaptics Two-Finger Width (295): 7
Synaptics Two-Finger Scrolling (298): 1, 1
Run Code Online (Sandbox Code Playgroud)
小智 16
我无法在我的 XPS 13 和 Ubuntu 14.04 上遵循这个答案。
但是找到了一个快速的解决方案来在输入时禁用触摸板:
sudo apt-get install gpointing-device-settings
Run Code Online (Sandbox Code Playgroud)
然后运行
gpointing-device-settings
Run Code Online (Sandbox Code Playgroud)
检查:启用手掌检测和移动范围:从开始缩小到 10% 左右。
回答我自己的问题,因为我想我终于找到了解决方案。
似乎罪魁祸首是 Synaptics 驱动程序本身。只要未修补驱动程序,您使用的任何前端或命令都将无法工作。
感谢精彩的网页http://xps13-9333.appspot.com/#touchpad以及与所有者的一些电子邮件,我终于设法修复了这个可怕的错误!
所以这里是一个简单的过程,请参阅上面的网页了解详细信息。
这样做是为了摆脱 Synaptics 驱动程序,然后下载上游驱动程序的源代码,修补它以进行正确的手掌检测,然后使用正确的触摸板设置创建文件。以下步骤在我的带有 Ubuntu 14.04 的戴尔 XPS“黄金版”(xps-9333) 上运行良好。
1. 首先要检查的事情
由于系统中缺少libevdev-dev软件包,我在此过程中遇到了麻烦(我猜它没有安装在 Ubuntu 14.04 中?)。所以首先,尝试安装这个包:
sudo apt-get install libevdev-dev
Run Code Online (Sandbox Code Playgroud)
如果你的系统上还没有它,它应该安装 3 个包:libevdev-dev、libevdev2{a}和libjs-jquery{a}
另一件事是安装 GIT 包,以便允许从 GIT 服务器下载上游 Synaptics 驱动程序的源代码。
sudo apt-get install git
Run Code Online (Sandbox Code Playgroud)
一旦这些软件包在您的系统上,您就可以按照这些命令进行操作。
2. 去掉实际的 SYNAPTICS 驱动程序并安装上游驱动程序
在终端中输入以下命令(按回车并检查每个命令后的输出):
sudo aptitude purge xserver-xorg-input-synaptics
sudo aptitude build-dep xserver-xorg-input-synaptics
Run Code Online (Sandbox Code Playgroud)
下一个命令使用 GIT。如果这是您第一次使用它,它会要求您提供邮件地址和昵称以完成该过程(即下载驱动程序的源代码)。您可以在终端中执行此操作,这是一个非常简单的过程。命令的输出会告诉您要键入的内容,您只需按照说明操作即可。我之前从未使用过 GIT,我可以非常轻松地处理这一步。
sudo git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics
Run Code Online (Sandbox Code Playgroud)
现在您进入下载源代码的文件夹中:
cd xf86-input-synaptics
Run Code Online (Sandbox Code Playgroud)
现在您下载新驱动程序的补丁,此补丁将通过启用手掌检测和触摸板上手指的宽度来修复驱动程序。
wget -q -O - http://xps13-9333.appspot.com/root/0001-Don-t-use-finger-width-for-the-palm-detection.patch | git am
Run Code Online (Sandbox Code Playgroud)
现在,从打过补丁的源代码构建新的驱动程序(在每一行后输入 Enter,每个命令都会产生相当多的输出):
./autogen.sh --prefix=/usr
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
您的新 Synaptics 驱动程序(带有允许手掌检测的补丁)现已安装在您的系统上,但您仍需要指定允许检测的设置。
3. 创建和编辑 20-SYNAPTICS-CONF 文件
现在是最后一部分,创建一个包含触摸板设置的文件,每次启动系统时都会读取该文件。
首先,您创建正确的文件夹:
mkdir -p /etc/X11/xorg.conf.d/
Run Code Online (Sandbox Code Playgroud)
然后您下载前面提到的网页所有者提供的文件,并将其复制到您刚刚创建的新文件夹中:
sudo wget -q -O /etc/X11/xorg.conf.d/20-synaptics.conf http://xps13-9333.appspot.com/root/etc/X11/xorg.conf.d/20-synaptics.conf
Run Code Online (Sandbox Code Playgroud)
最后,您可以使用synclient来指定参数 PalmMinZ 的最佳值(键入一个数字而不是“VALUE”,我建议使用 100,这对我来说非常有用)。
synclient PalmMinZ=VALUE
Run Code Online (Sandbox Code Playgroud)
在此过程结束时,您应该在 /etc/X11/xorg.conf.d 中拥有新文件 20-synaptics.conf,该文件应如下所示:

4.不要忘记重新启动:)
这里的所有答案都不适用于在 XPS12 上全新安装 Ubuntu 14.04.3,至少在我将 psmouse 模块列入黑名单之前是这样。以下说明基本上引用自XPS13 机器的这组说明:
检查您的触摸板是否仅使用 I2C 总线,而不是 ps2 模式。启动终端并输入
xinput
Run Code Online (Sandbox Code Playgroud)
虚拟核心指针应该只有两个项目:
Virtual core XTEST pointer
DLL0665:01 06CB:76AD UNKNOWN
Run Code Online (Sandbox Code Playgroud)
如果它列出了名称中带有 PS2 触摸板的第三个项目,您应该通过将这些行添加到 psmouse 模块来将其列入黑名单/etc/modprobe.d/blacklist.conf:
# remove SynPS/2 Synaptics Touchpad because we want the mouse to work over IC2b
blacklist psmouse
Run Code Online (Sandbox Code Playgroud)
然后打电话
sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
重新启动后,选择Disable touchpad while typing在System Settings/Mouse & Touchpad他的工作的预期。