libinput 手掌检测不起作用

Tre*_*ars 5 debian touchpad libinput

我最近购买了一台新的 Dell XPS 15 并在其上安装了 Debian。它之前运行的是 Windows 10,手掌检测/拒绝功能运行得很好,正如我所期望的那样。但现在,运行 Debian 并使用libinput手掌检测(据我所知)不存在/完全损坏。

\n\n

输出xinput | grep -i touchpad

\n\n
\xe2\x8e\x9c   \xe2\x86\xb3 SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出xinput list-props 13

\n\n
Device \'SynPS/2 Synaptics TouchPad\':\n    Device Enabled (116):   1\n    Coordinate Transformation Matrix (118): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000\n    libinput Tapping Enabled (269): 1\n    libinput Tapping Enabled Default (270): 0\n    libinput Tapping Drag Enabled (271):    1\n    libinput Tapping Drag Enabled Default (272):    1\n    libinput Tapping Drag Lock Enabled (273):   0\n    libinput Tapping Drag Lock Enabled Default (274):   0\n    libinput Tapping Button Mapping Enabled (275):  1, 0\n    libinput Tapping Button Mapping Default (276):  1, 0\n    libinput Accel Speed (251): 0.000000\n    libinput Accel Speed Default (252): 0.000000\n    libinput Natural Scrolling Enabled (256):   0\n    libinput Natural Scrolling Enabled Default (257):   0\n    libinput Send Events Modes Available (236): 1, 1\n    libinput Send Events Mode Enabled (237):    0, 0\n    libinput Send Events Mode Enabled Default (238):    0, 0\n    libinput Left Handed Enabled (258): 0\n    libinput Left Handed Enabled Default (259): 0\n    libinput Scroll Methods Available (260):    1, 1, 0\n    libinput Scroll Method Enabled (261):   1, 0, 0\n    libinput Scroll Method Enabled Default (262):   1, 0, 0\n    libinput Click Methods Available (277): 1, 1\n    libinput Click Method Enabled (278):    1, 0\n    libinput Click Method Enabled Default (279):    1, 0\n    libinput Middle Emulation Enabled (265):    0\n    libinput Middle Emulation Enabled Default (266):    0\n    libinput Disable While Typing Enabled (280):    1\n    libinput Disable While Typing Enabled Default (281):    1\n    Device Node (239):  "/dev/input/event1"\n    Device Product ID (240):    2, 7\n    libinput Drag Lock Buttons (267):   <no items>\n    libinput Horizontal Scroll Enabled (268):   1\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的/etc/X11/xorg.conf.d/40-libinput.conf文件:

\n\n
Section "InputClass"\n        Identifier      "libinput touchpad catchall"\n        MatchIsTouchpad "on"\n        MatchDevicePath "/dev/input/event*"\n        Driver          "libinput"\n        Option          "Tapping"                       "on"\n        Option          "TappingDrag"                   "on"\nEndSection\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 生成的输入事件示例sudo evemu-record /dev/input/event1 >> eventlog-finger.log使用我的手指在触摸板上进行操作,就像我在正常使用期间所做的那样。

\n\n

当我尝试打字时,用手掌放在触摸板上生成的输入事件示例sudo evemu-record /dev/input/event1 >> eventlog-palm.log

\n\n

如果您查看事件日志,您会发现它ABS_TOOL_WIDTH仅在每个日志的开头出现一次。根据我在此处此处发现,这是一个(在某种程度上)已知的问题,ABS_TOOL_WIDTH从未将其报告为除 0 以外的任何内容。这显然会破坏使用突触驱动程序的手掌检测,并且我假设在 libinput 中也是如此。

\n\n

尝试在我的笔记本电脑上做任何事情而不插入外部鼠标并禁用触摸板几乎是不可能的,鼠标会跳动并且更麻烦,有时我的手掌可以点击触摸板,使我在不可预测的地方或根本无处打字。

\n\n

如果有人知道如何开始解决这个问题,我们将不胜感激。

\n\n

编辑1:

\n\n

我应该提到,我已经尝试过使用 Synaptics 触摸板驱动程序,包括执行以下操作:

\n\n
apt install -y xserver-xorg-input-synaptics\nsynclient PalmDetect=1\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后通过乱搞以下设置无济于事:

\n\n
synclient PalmMinWidth=4\nsynclient PalmMinZ=80\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经尝试过 0 到 15 之间的所有内容PalmMinWidth以及 50 到 150 之间的所有内容PalmMinZ什么都不起作用。但如果还不清楚 - 我已经知道这是因为ABS_TOOL_WIDTH 没有报道。我确信这一点,因此这不是我问题的基础 - 我的问题涉及我将如何修复报告ABS_TOOL_WIDTH或其他会产生类似结果的解决方法。

\n

Tre*_*ars 2

经过数周的重大烦恼,我终于找到了一个愚蠢简单的解决方案:

只需升级软件包即可

我下载了以下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

trevor@xps:~$ cd ~/downloads/
trevor@xps:~$ sudo dpkg -i libwacom-common_0.30-1_all.deb
...dpkg runs...
trevor@xps:~$ sudo dpkg -i libwacom2_0.30-1_amd64.deb
...dpkg runs...
trevor@xps:~$ sudo dpkg -i libinput-bin_1.11.3-1_amd64.deb
...dpkg runs...
trevor@xps:~$ sudo dpkg -i libinput10_1.11.3-1_amd64.deb
...dpkg runs...
Run Code Online (Sandbox Code Playgroud)

并重新启动我的系统(重新启动 X 也应该可以工作)。当我的笔记本电脑重新启动后,手掌检测功能就发挥了作用。