我最近买了一台新的戴尔 XPS 15 并在上面安装了 Debian。它之前运行的是 Windows 10,手掌检测/拒绝功能完美,正如我所预料的那样。但是现在,运行 Debian 并使用libinput
手掌检测(据我所知)不存在/完全损坏。
输出xinput | grep -i touchpad
:
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
输出xinput list-props 13
:
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (116): 1
Coordinate Transformation Matrix (118): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (269): 1
libinput Tapping Enabled Default (270): 0
libinput Tapping Drag Enabled (271): 1
libinput Tapping Drag Enabled Default (272): 1
libinput Tapping Drag Lock Enabled (273): 0
libinput Tapping Drag Lock Enabled Default (274): 0
libinput Tapping Button Mapping Enabled (275): 1, 0
libinput Tapping Button Mapping Default (276): 1, 0
libinput Accel Speed (251): 0.000000
libinput Accel Speed Default (252): 0.000000
libinput Natural Scrolling Enabled (256): 0
libinput Natural Scrolling Enabled Default (257): 0
libinput Send Events Modes Available (236): 1, 1
libinput Send Events Mode Enabled (237): 0, 0
libinput Send Events Mode Enabled Default (238): 0, 0
libinput Left Handed Enabled (258): 0
libinput Left Handed Enabled Default (259): 0
libinput Scroll Methods Available (260): 1, 1, 0
libinput Scroll Method Enabled (261): 1, 0, 0
libinput Scroll Method Enabled Default (262): 1, 0, 0
libinput Click Methods Available (277): 1, 1
libinput Click Method Enabled (278): 1, 0
libinput Click Method Enabled Default (279): 1, 0
libinput Middle Emulation Enabled (265): 0
libinput Middle Emulation Enabled Default (266): 0
libinput Disable While Typing Enabled (280): 1
libinput Disable While Typing Enabled Default (281): 1
Device Node (239): "/dev/input/event1"
Device Product ID (240): 2, 7
libinput Drag Lock Buttons (267): <no items>
libinput Horizontal Scroll Enabled (268): 1
我的/etc/X11/xorg.conf.d/40-libinput.conf
文件:
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "on"
Option "TappingDrag" "on"
EndSection
使用我的手指在触摸板上生成的输入事件示例,sudo evemu-record /dev/input/event1 >> eventlog-finger.log
就像我在正常使用期间所做的那样。
使用我的手掌在触摸板上生成的输入事件示例,sudo evemu-record /dev/input/event1 >> eventlog-palm.log
就像我尝试键入时发生的那样。
如果您查看事件日志,您会发现它ABS_TOOL_WIDTH
仅在每个日志的开头出现一次。根据我在这里和这里的发现,这是一个(有些)已知的问题,ABS_TOOL_WIDTH
除了 0 之外,它从未被报告为任何其他值。这显然会破坏使用突触驱动程序的手掌检测,我也假设在 libinput 中。
试图在我的笔记本电脑上做任何事情而不插入外接鼠标并禁用触摸板几乎是不可能的,鼠标跳跃和更麻烦的是,有时我的手掌可以点击触摸板,让我在某个不可预测的地方或根本没有地方打字。
如果有人完全了解如何开始解决此问题,将不胜感激。
编辑1:
我应该提一下,我已经尝试过使用 Synaptics 触摸板驱动程序,包括执行以下操作:
apt install -y xserver-xorg-input-synaptics
synclient PalmDetect=1
然后通过弄乱以下设置无济于事:
synclient PalmMinWidth=4
synclient PalmMinZ=80
我已经尝试了 0 到 15PalmMinWidth
和 50 到 150 之间的所有内容PalmMinZ
。没有任何效果。但如果还不清楚的话——我已经知道这是因为ABS_TOOL_WIDTH
没有报道。我很确定,因此这不是我的问题的基础 - 我的问题与我将如何着手修复报告ABS_TOOL_WIDTH
或其他会产生类似结果的解决方法有关。
使用以下内容创建文件
/etc/X11/xorg.conf.d/50-synaptics.conf
:之后重新启动您的笔记本电脑以应用新配置。玩
PalmMinWidth
选项以获得最佳结果 - 尝试值3
等4
。另一种方法是临时设置属性,只需在终端执行:
尝试不同的值
Synaptics Palm Dimensions
。另外阅读synaptics - Synaptics 触摸板输入驱动程序。
许多周的主要烦恼,我终于得出了一个愚蠢简单的解决方案:
只需升级软件包。
我下载了以下4个包:
libinput10_1.11.3-1_amd64.deb
libinput-bin_1.11.3-1_amd64.deb
libwacom2_0.30-1_amd64.deb
libwacom-common_0.30-1_all.deb
dpkg
并按如下方式安装它们:并重新启动我的系统(重新启动 X 也应该可以)。在我的笔记本电脑重新启动后,手掌检测就像一个魅力。
libinput 进行基于压力的手掌检测,但它需要阈值,请在此处查看他的链接:https ://wayland.freedesktop.org/libinput/doc/latest/touchpad-pressure-debugging.html
这就是你可以在这里做的所有事情,因为永远不会设置工具宽度(尽管 libinput 无论如何都不会看到),但是一旦你在 quirk 文件中设置压力(或者如果你在 libinput <= 1.11)它会工作。
确定压力阈值后,请提交错误。