任何帮助都将不胜感激。我在 Macbook Pro 上安装了 Ubuntu,除了触摸板之外,其他一切都运行良好。
仅当我以绝对最小的压力操作触摸板时,指针才会移动。
只要稍微施加一点压力,指针就会停止并卡住。通过将触摸板上的压力降至最低,它就会再次开始移动。
如果我以 Mac 恢复模式启动,触摸板可以正常工作,不会因手指的压力而停止工作。这是正常使用,在触摸板上施加的压力方面没有任何异常。
我尝试安装一些工具来更改触摸板的所有设置,例如键入时禁用、滚动设置等,但无法使其正常工作。有什么建议吗?
我的 Ubuntu 版本是 21.10 | 操作系统类型 64 位 | GNOME 版本 40.4.0 | 窗口系统 Wayland
下面是一个简短的视频,展示了触摸板压力增加时指针卡住的情况。视频中 libinput 打开,测量触摸板压力。
输出来自libinput
:
+-------------------------------------------------------------------------------+
| Thresh | 30 | 25 | 130 | 256 | |
+-------------------------------------------------------------------------------+
| Touch | down | up | palm | thumb | min | max | p | avg | median |
+-------------------------------------------------------------------------------+
| 1750 | x | x | x | | 25 | 241 | 0 | 174 | 177 |
| 1751 | x | x | x | | 26 | 218 | 0 | 176 | 174 |
| 1752 | x | x | x | | 22 | 212 | 0 | 155 | 155 |
| 1753 | x | x | x | | 50 | 193 | 0 | 163 | 176 |
+-------------------------------------------------------------------------------+
提前致谢!
从我所看到的情况来看,似乎发生的情况是手掌检测非常早就触发了,即使我只用一根手指轻轻按压触摸板。
我正在尝试输入 local-overrides.quirks 文件,但不确定如何让 libinput 真正读取 quirks 文件。是否只需注销并重新登录即可?
这是我尝试让 libinput 读取的 .ini 文件。
不确定 MatchDMIModalias 的语法是否良好......
[Touchpad palm pressure override]
MatchUdevType=touchpad
MatchName=bcm5974
MatchDMIModalias=dmi:*svnAppleInc.:*pnMacBookPro9,2*
AttrPalmPressureThreshold=256
我无法弄清楚 local-overrides.quirks 是如何工作的,所以我编辑了 libinput 在初始化时读取的实际怪癖文件。
我将 palmpressurethreshold 调到最大值,因此现在测量时,它不再触发手掌。
ModelAppleTouchpad=1
AttrSizeHint=104x75
AttrTouchSizeRange=150:130
AttrPalmSizeThreshold=700
AttrPalmPressureThreshold=255
但是,当我对指针施加一点点压力时,它仍然会冻结。:'(
+-------------------------------------------------------------------------------+
| Thresh | 30 | 25 | 255 | 256 | |
+-------------------------------------------------------------------------------+
| Touch | down | up | palm | thumb | min | max | p | avg | median |
+-------------------------------------------------------------------------------+
| 32 | x | x | | | 34 | 139 | 0 | 121 | 128 |
| 33 | x | x | | | 25 | 127 | 0 | 112 | 114 |
| 34 | x | x | | | 24 | 130 | 0 | 112 | 116 |
| 35 | x | x | | | 20 | 139 | 0 | 103 | 105 |
| 36 | x | x | | | 21 | 148 | 0 | 125 | 132 |
| 37 | x | x | | | 31 | 238 | 0 | 156 | 160 |
| 38 | x | x | | | 26 | 180 | 0 | 139 | 145 |
| 39 | x | x | | | 17 | 166 | 0 | 135 | 142 |
| 40 | x | x | | | 31 | 222 | 0 | 142 | 140 |
| 41 | x | x | | | 36 | 172 | 0 | 140 | 143 |
| 41 | x | x | | | 0 | 172 | 0 | 138 | 143 |
尽管如此,当我施加一点点压力时,指针仍然会冻结,甚至没有发出手掌触摸测量工具的信号。:'(。必须继续调查!
耶!打破它就解决了!
因此,即使调整了手掌压力阈值,使手掌永远不会触发,当我在触摸板上施加一些额外的压力时,指针仍然会冻结。非常烦人。我尝试了许多不同的布尔怪癖,例如 ModelTabletModeNoSuspend、ModelTabletModeSwitchUnreliable,认为额外的压力可能会让 linbinput 认为我正在切换到平板电脑模式并以某种方式禁用触摸板。没有成功。
然后我决定对它进行彻底的改造,将布尔值设为“5”,看看它是否真的读取了我写的内容。这导致 quirk 出现解析错误,从而阻止了整个 quirk 的运行,瞧!触摸板工作正常!这让我意识到 quirk 上的一个预设设置是导致指针冻结的原因。
有问题的参数是 AttrPalmSizeThreshold。不知何故,如果检测到额外的压力,这个怪癖会冻结指针,至少在我的 Macbook Pro 9,2 上是这样。从怪癖中移除它使触摸板工作正常!大获成功!