寻找改善突触/触摸板手掌检测的方法


17

我发现触摸板的手掌检测非常糟糕。我已将其设置为最低灵敏度,而不会破坏触摸板的使用(PalmMinWidth = 5,PalmMinZ = 1),并且每当我在键盘上打字时,我仍然会随机碰碰。

我宁愿使用手掌检测,也不愿在打字时禁用键盘,因为我发现键盘被禁用了太长时间(即,我已经完成打字并且必须等待2秒钟才能再次使用键盘,这很烦人) 。一种可能的策略是减少这种延迟,尽管我不确定触摸板是否会保持可用(如果您知道如何执行此操作,请将其发布,总比没有好:)。

每当我使用Windows时,我发现我的触摸板并没有太大的麻烦,因此必须要有一种改善手掌检测的方法?

最后,我正在Linux内核3.2.0-rc7上运行Debian测试64位。


这个问题是我在2011年在SuperUser上回答的一个问题的重复。superuser.com/questions/277427/…–
令人沮丧的

Answers:


17

我遇到了类似的问题,发现此博客上的答案相当完整,并复制了相关详细信息:

设置手掌检测:

在终端类型中打开手掌检测:

$ synclient PalmDetect=1

设置应该解释为手指而不是手掌的最大宽度。我选择4,大多数操作方法使用10,最好在此处进行一些猜测和测试:

$ synclient PalmMinWidth=4

然后,设置手掌与手指的最小高度:

$ synclient PalmMinZ=50 

最后,在Ubuntu下,默认情况下未启用三指中键,因此,如果要启用它,请使用:

$ synclient TapButton2=3 TapButton3=2

从理论上讲,这应启用2指点击来进行中键单击,并启用3指点击来进行右键单击,但是在Ubuntu 13.04中,所得到的行为恰恰相反。因此,如果您更喜欢用两指点击来进行中键点击操作:

$ synclient TapButton2=2 TapButton3=3 

要使此设置永久存在,请找到正确的设置,将其保存到50-synaptics.conf位于/usr/share/X11/xorg.conf.d/50-synaptics.confDebian / Ubuntu(Semplice)和/etc/X11/xorg.conf.d/50-synaptics.conf基于Arch Linux的发行版中(第一个“ InputClass”部分用于多点触控中键修复) ,它已在Arch中启用,因此您无需添加它):

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "HorizTwoFingerScroll" "on"
    Option "VertTwoFingerScroll" "on"
EndSection


#synclient PalmDetect=1
Option "PalmDetect" "1"
#synclient PalmMinWidth=4
Option "PalmMinWidth" "4"
#synclient PalmMinZ=50
Option "PalmMinZ" "50"

键入时暂时关闭触摸板:

代替使用synclient命令,请使用syndaemon:

$ syndaemon -K -i 0.5 -R -d 

牌坊维基声称,如果这个命令保存到 ~/.xinitrc文件有它在您下次登录自动执行。但是,当我这样做时,我没有意识到该命令必须在启动桌面(exec DESKTOP.session命令)之前发生。在玩了很多其他配置文件并学习了有关SLiM显示管理器的大量知识之后,我终于意识到该命令只需要在文件上进一步移动,因为在桌面启动后,直到桌面运行该命令退出了。


5

我找到了一种修改输入时禁用触摸板的时间长度的方法。对于其他在这里寻找它的人是:

注意:谷歌搜索足够迅速地产生答案

只需运行程序syndaemon -d并添加一个选项-i wait_time,其中wait_time是重新启用触摸板之前要等待的时间。给syndaemon提供的其他有用参数包括:-K当击键的格式为修饰符+键时,从不禁用触摸板,并且-t仅禁用单击,而不禁用鼠标移动。

因此,就我而言,我在登录时运行的脚本中添加了以下内容:

#Get rid of previous syndaemon
killall syndaemon
#More aggressive behavior, allow for mod+key combos, enable mouse movements
syndaemon -i 0.2 -K -t -d

通过所有这些修改,尤其是-t标志,我现在就可以使用触摸板了!


我发现我至少需要-t(-t仅禁用轻击和滚动,而不是响应键盘活动的鼠标移动),否则我发疯了。我在Fedora 16上。如何使更改永久生效?
菲利普·德宾

@PhilipDurbin我将它们放在启动时调用的脚本中(使用gnome-session-properties),但我需要为每个用户执行此操作。比较传统的方法是将它们放在xorg.conf文件中,但是我找不到syndaemon在其中设置选项的方法,只能设置synclient选项。
levesque 2012年

3

我有一台带有大触摸板的现代笔记本电脑,而且有一半的时间,我的右手掌坐在边缘上,在我打字时做出了错误的点击。synclient PalmDetect = 1方法对我不起作用(无论我将PalmMinWidth和PalmMinZ设置为什么)。也许是因为我的手掌从右侧触摸了护垫,而手掌检测器可能正在从顶部对其进行检查。我不确定

我通过在右侧边缘上设置一个死区来解决了这个问题。这是您的操作方式:

synclient 

将为您提供触摸板的当前设置。有趣的是这些结果在这里:

LeftEdge                = 1572
RightEdge               = 5370
TopEdge                 = 1376
BottomEdge              = 4480

显然,数字将取决于硬件。寻找想要的边缘。在我的情况下,这是正确的边缘。我选择了要剃的量。您想剃除可以摆脱的最小数量,同时仍然阻止手掌上的虚假点击。一个非常简单的测试是在网上找到可点击的图片,将鼠标悬停在其中心,然后将手掌放在通常要键入的位置。为了模拟打字,请在触摸板的边缘用掌心(通常在您打字时突出)覆盖(轻轻地)拍打。如果您获得点击,您将立即知道。这将是反复试验的过程,请继续尝试直到发现最佳效果。就我而言,削减30个成功了:

synclient AreaRightEdge=5340

要修改其他边缘,请更改AreaBottomEdge,AreaLeftEdge或AreaTopEdge。将这些值设置回0将禁用它们。


手册页提到手掌检测功能需要硬件支持。我在人们在讨论触摸板的地方找到了讨论,这些触摸板理论上具有对它的硬件支持,但实际上是行不通的。因此我尝试了PalmDetect=1但无法使其正常工作。我设置了参数,以便所有输入都应视为意外的手掌击打,但所有输入仍会通过。因此,我的触摸板不支持它,或者有故障。最后,我使用了Area...Edge参数来减少触摸板的面积。那行得通。
路易斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.