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

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

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

我宁愿在打字时使用手掌检测而不是禁用键盘,因为我发现键盘被禁用的时间太长(即,我完成打字,我必须等待 2 秒才能再次使用键盘,这很烦人) 。一个可能的策略是减少这种延迟,尽管我不确定触摸板是否保持可用(如果您知道如何做到这一点,请发布它,总比没有好:)。

每当我使用 Windows 时,我发现触摸板并没有那么麻烦,所以一定有办法改进手掌检测吗?

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

答案1

我遇到过类似的问题并找到了答案这个博客相当完整并复制了相关细节:

设置手掌检测:

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

$ synclient PalmDetect=1

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

$ synclient PalmMinWidth=4

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

$ synclient PalmMinZ=50 

最后,在 Ubuntu 下,默认情况下不启用三指中键单击,因此如果您想启用它,请使用:

$ synclient TapButton2=3 TapButton3=2

理论上,这应该启用 2 指点击进行中键单击,3 指点击进行右键单击,但在 Ubuntu 13.04 中,结果行为恰恰相反。因此,如果您更喜欢用 2 根手指点击来进行中键单击,请执行以下操作:

$ synclient TapButton2=2 TapButton3=3 

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

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 显示管理器的知识后,我终于意识到该命令只需要在文件中进一步移动,因为桌面启动后的命令直到桌面启动后才会运行是退出。

答案2

我找到了修改打字时禁用触摸板的时间长度的方法。对于其他在这里寻找它的人来说,它是:

注意:谷歌搜索很快就能给出答案

只需运行该程序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标志,我现在可以使用触摸板了!

答案3

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

我通过在右边缘创建一个死区解决了这个问题。您可以这样做:

synclient 

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

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

显然,数字会根据硬件而有所不同。寻找你想要的边缘。在我的例子中,它是右边的边缘。我选择了我想要剃须的量。您想要削减可以逃脱的最小数字,同时仍然阻止手掌上的虚假点击。一个非常简单的测试是在网络上找到一张可点击的图片,将鼠标悬停在其中心并将手掌放在您通常打字的位置。要模拟打字,请用打字时通常伸出的手掌部分拍打(轻轻!)触摸板边缘。如果您获得点击,您就会立即知道。这将是一个反复试验的过程,继续尝试,直到达到最佳状态。就我而言,减少 30 就可以了:

synclient AreaRightEdge=5340

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

相关内容