禁用键盘输入时触摸板无效。

我已经在设置中检查了那个选项,但它不起作用。我还在这个网站上搜索了解决方案,但其中没有一个有效。我该怎么办?

相关链接:http://askubuntu.com/questions/462135/touchpad-issue-jumping-cursor-while-typing-ubuntu-14-04-syndaemon-dont-help - michael
8个回答

这个命令对我有效(1 是最后一个按键被按下后重新启用触摸板前等待的秒数,将其更改为您想要的任何值)。
syndaemon -i 1 -K -d

只需将其添加到启动应用程序中,即可在重新启动/关闭后使其正常工作。 要查看更多选项,请在终端中输入此命令:
syndaemon --help or man syndaemon

4对我来说可以(Ubuntu 13.10),但也会禁用我经常使用的华硕K55N上的双指滚动功能。 - ichigolas
5对我来说没问题(Ubuntu 14.04,Lenovo T410),双指滚动仍然有效。但是,如果您将其添加到启动应用中,请确保在"鼠标和触摸板"设置中取消"输入时禁用"选项,否则两种机制会相互干扰,导致触摸板完全无法使用。您可以在这里对错误报告进行投票:https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1295526 - simonp
工作得很好(Ubuntu 14.04 LTS)。我测试过,打字时光标几乎没有移动1cm的70%(如果有的话)。 - dlundy1
在Linux Mint 17.2上对我来说没问题。 - knaperek
simonp可能会发现Ubuntu bug #1215463与此相关。 - JdeBP

就像其他人一样,syndaemon实用程序解决了我的问题。对我来说,syndaemon已经在运行中。

在玩弄它并阅读这里的其他答案后,我确定问题的原因是-t选项。

选项一定有一个错误,因为当它被指定时,我仍然可以在输入时滚动和点击。但是,如果您完全省略该选项,则一切正常;当您不包括-t选项时,在输入时整个触摸板都会按预期禁用。我只需运行以下命令即可重新启动syndaemon而不使用-t

$ killall syndaemon
$ syndaemon -i 1 -KRd

  • -i 允许您指定 syndaemon 在停止输入后重新启用触摸板之前等待的时间。对我来说,一秒钟已经足够好了。
  • -K 告诉 syndaemon 在监视键盘输入时忽略修饰键和修饰键组合。
  • -R 告诉 syndaemon 使用“XRecord”扩展而不是轮询键盘输入。我想它出于性能原因使用这个扩展;该扩展可能会在输入停止时报告,而不是依赖 syndaemon 不断轮询键盘以查看是否有输入。
  • -d 只是告诉 syndaemon 在启动时在后台运行,而不会阻塞终端输入。如果不包括此选项,则在关闭终端时 syndaemon 将停止运行。

所以最后问题出在 -t 选项上。只需在没有该选项的情况下运行 syndaemon,一切都会正常。

PS - 我的机器是一台原装联想Yoga 13,如果有人想知道的话。我完全清除了Windows安装,并替换为Ubuntu 14.04。

1谢谢!我使用的是联想T450s笔记本,在16.04版本下仍然遇到同样的问题。我认为这个解决方案终于解决了。太好了!但是你是否提交了错误报告?如果没有,这里有一个:https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1603791 - CPBL
我还没有创建一张票。谢谢你帮我做了那个 :) - Chev
实际上,在T450s和16.04版本上,这个方法一开始是有效的,但是经过一段时间后,有时候会因休眠等原因导致光标完全消失,我不得不重新启动系统。所以这并不是一个可行的解决方案。 - CPBL
谢谢。你的评论让我意识到为什么这个命令没有任何效果。后台有5个syndaemon实例在运行。 - ecc
在我的情况下,我不需要杀掉 syndaemon,因为它没有在运行。我使用的是安装有 Ubuntu 18.04 的 Lenovo Yoga 13。另外,使用 -i 0.5 可以让 syndaemon 的干扰性稍微减少一些。真是个好发现! - maaw

尝试从Ubuntu软件中心安装指向设备。输入“pointing devices”,然后点击安装。安装完成后,从Dash打开该程序。打开程序后,触摸板应该显示出来(以及任何其他插入的鼠标)。点击您的触摸板,会出现一个名为“palm detection”的选项。将“range”设置为“low”,将“pressure”设置为“high”。然后关闭它。如果问题没有解决,请回复。

1这对我在我的华硕ZenBook Prime UX32A上不起作用。指向设备程序似乎无法保持“在其他设备连接时禁用”的设置,并且掌控检测似乎也不起作用。 - noisygecko
哎呀,这真是太有帮助了。我一直为那该死的指针乱动而感到烦恼,它总是干扰我的工作。每次安装Ubuntu时,我都要写一个shell脚本,并手动调整数字,直到它们正确为止,我真是累坏了。谢谢你提供这个小贴士。 - Mr. B
手掌检测似乎没有起作用。当我输入这条评论时,我可以用一只手指移动触摸板。可能与此有关:我注意到在点击“确定”后重新打开时,高/低滑块并不会保存我的设置。(在14.04上进行了新安装) - Jonathan
我也可以在打字时移动指针,但是安装后,在打字时点击触摸板不会将文本光标移动到指针位置,所以现在我很高兴!(Ubuntu Gnome 14.04 + Gnome 3.12,联想Carbon X1 Gen2)。 - Rasmus
和@Rasmus一样,但是使用的是戴尔Inspiron 17R上的Ubuntu 14.04。 - tigerjack
“指向设备”应用程序(gpointing-device-settings)无法保存我的“压力”设置,但我发现你可以通过命令行完成相同的操作:synclient PalmMinZ=255 - slinkp
手掌检测对我无效:我使用的是 Lenovo W520 笔记本电脑,搭载的是 Ubuntu 14.04 x64。 - Jake
在Ubuntu 15.04上,手掌检测设置为“范围:窄->宽”和“压力:低->高”。对于Synaptics触摸板,可以使用“synclient -l | grep Palm”来设置和列出这些设置。设置“PalmDetect=1”表示启用。在用户界面中,“PalmMinWidth”是“范围”,是将触摸视为手掌所需的最小宽度。“PalmMinZ”是将触摸视为手掌所需的最小压力(较低值更敏感)。注意:有报告称设置在重新启动后未正确保存(https://bugs.launchpad.net/ubuntu/+source/gpointing-device-settings/+bug/489830)。 - michael
对我来说也不起作用。 - Vipin Verma

我尝试了所有提到的选项,但都没有起作用。然后我找到了这个神奇的命令,对我有用。你可以试一试,也许对你也有效。
syndaemon -i 1 -K -d

你是指“-d”吗? - Feng
你确实想要使用-d选项。-K选项不需要值,它告诉syndaemon在监控键盘输入时忽略修饰键和修饰键+按键组合。而-d选项则告诉syndaemon在后台运行,而不会占用你的终端。 - Chev
这个简直是神奇的,没有-K。 - Z. Zlatev
触摸板禁用 :( - Amir
1我现在在用戴尔XPS 9550,就我所知它没有做任何事情。 - Alexander Mills

  1. 在触摸板设置中取消选中“打字时禁用”,如下所示(是的,尽管看起来有些不合理,但这是必要的,否则在执行以下“永久”步骤并重新启动后,触摸板将被禁用,因为以前的/错误的 syndaemon 将在启动时运行并发生冲突)

    enter image description here

  2. 终止当前的 syndaemon 进程(如果之前已经在启动时启动了任何进程),该进程控制着此触摸板功能:

    pkill syndaemon
    
  3. 重新启动 syndaemon 进程:

    syndaemon -i 2 -d -K
    

    其中:2 是停止输入后在激活触摸板之前等待的延迟时间,以秒为单位;请注意,任何小于 1.5~2 秒的时间值(实际上是任何小于 2 秒的时间值)都可能出现故障,而且似乎无法在输入时完全禁用触摸板

  4. 要使此修复方法永久生效:从搜索栏中运行“启动应用程序”应用程序→点击“添加”→并在“命令”部分输入以下命令:syndaemon -i 2 -d -K。名称和注释可以任意填写。完成后点击“添加”,然后关闭它。如下图所示:

    enter image description here

  5. 重新启动计算机以验证其是否正常工作。请注意,此功能在您登录用户帐户之后才会启动。在登录界面上尚未激活。
在Ubuntu 14.04中阅读更多关于这个Bug的信息,请点击这里:https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1295526 这个答案最初发布在这里:https://askubuntu.com/a/986129/327339

感谢您!禁用的触摸板给我带来了很多困扰! - JREAM

在“系统设置->鼠标和触摸板”中的选项“输入时禁用”由于Ubuntu中的错误而无法正常工作,如在此确认的错误报告中所述。这是一个旧的错误,从12.04版本开始影响所有用户,无论他们使用的是什么品牌的笔记本电脑。
有效的方法是添加以下代码片段:
syndaemon -i 4 -K -d

在启动应用程序中。
“-i 4”对我来说效果很好,“-i 1”如一些来源所建议的可能不够。
请不要使用在网上的一些示例中可以找到的“-t”选项。这是问题的原因,因为它不能在键盘上输入时禁用触摸板。
在启动时,syndaemon没有运行,所以不需要“killall syndaemon”。但是,如果syndaemon已经启动,您应该使用:
killall syndaemon
syndaemon -i 4 -K -d

你可以尝试用一只手打字,然后用第二只手的手指在触摸板上移动光标,以确认它对你有效。

对我来说不起作用 - Vipin Verma

我也遇到了同样的问题 - 即使选项被勾选上,但它并没有起作用。我通过在Ubuntu软件中心安装了“Synaptics触摸板”来解决了这个问题(似乎默认情况下并未安装)。
安装完成后,我通过访问它到达了Dash,并使用它在键入时禁用了触摸板。你还可以设置键盘活动被检测到后触摸板应保持非活动状态的时间。

我没有看到“Synaptics触摸板”。我看到了驱动程序,但是我没有看到这个。你添加了自定义源吗?[在Ubuntu 14.04上测试过] - Jonathan
我给出的答案在Kubuntu 13.04上有效。最近我升级到了14.04,现在我也看不到synaptics(只有驱动程序,就像你提到的那样)。 - dwcoder
现在我只是手动打开“指针设备”,每次插入鼠标时都要手动禁用触摸板 =/ [14.04] - Jonathan

为了补充已经提供的所有答案,我建议首先使用以下命令:syndaemon -i 1 -K -d。这个命令的唯一问题是,一旦系统重启,代码就会被撤销。
因此,我建议创建一个别名(Alias)来使用这个命令,这样即使系统重新启动,您只需在终端中输入一个命令,代码就会自动执行。
我个人使用“keystop”作为命令名称来实现这段代码。但您可以选择任何名称,只需按照以下步骤操作(将keystop替换为您选择的命令名称)。
请记住,您选择的命令名称不能已被使用!
具体操作如下:
1. 打开终端。 2. 输入alias keystop='syndaemon -i 1 -K -d'
就是这样!从现在开始,每当您重新启动系统时,只需打开终端并输入keystop,代码就会执行!