触摸板问题:打字时跳跃光标(Ubuntu 14.04),syndaemon 没有帮助

gre*_*uti 22 touchpad

我知道关于这个问题还有其他问题,但我找不到正确的调整来解决它。

输入内容时,触摸板仍会检测到我的手掌。这真的很烦人,尤其是因为它破坏了我全新的戴尔 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% 左右。


gre*_*uti 8

回答我自己的问题,因为我想我终于找到了解决方案。

似乎罪魁祸首是 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-devlibevdev2{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,该文件应如下所示:

我的 20-synaptics.conf 文件

4.不要忘记重新启动:)


Com*_*bra 6

这里的所有答案都不适用于在 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 typingSystem Settings/Mouse & Touchpad他的工作的预期。

  • 执行完您的步骤后,我仍然没有出现方便的“打字时禁用触摸板”选项,但至少我最终可以像其他答案中发布的那样让 `syndaemon` 工作。也就是说,你的回答真的很有帮助,对我来说是必要的一步。非常感谢!这是在戴尔 Inspiron 5559 和 Ubuntu 16.10 上运行的。 (4认同)
  • 我按照这些说明操作,它适用于 Ubuntu 16.10。就像@egmont 说的那样,没有禁用触摸板的选项,但是我之后打字时触摸板不再有问题。 (3认同)