如何在 libinput 中禁用鼠标去抖动

如何在 libinput 中禁用鼠标去抖动

刚买了一个新鼠标(出色的 O 型),我可以双击它(我单击一次,获得两次点击),但是我只能让它在 Windows 上记录两次点击。我做了一些研究,我很确定它libinput默认阻止双击。有什么方法可以让它不尝试取消双击吗?我知道对于大多数人来说,防止双击很有用,但是我希望能够双击以在 Minecraft 中获得更高的 CPS,并且我从来没有意外地获得双击。

答案1

只是将评论中的讨论重新发布作为答案。

首先,为了避免混淆:OP 没有用于双击的硬件按钮。相反,他们所指的双击是指以特殊方式点击鼠标左键,使其弹起并导致 2 次点击。我也可以用鼠标重现它。

这几乎从来都不是一个想要的行为,所以 libinput 有一个去抖动算法,可以检测并丢弃这种抖动。(仅供参考:它可以与硬件双击按钮配合使用)。因此 OP 询问他们是否可以在本地禁用它。

通过 quirk 子系统确实可以实现。在继续之前,我需要引用文件

对于临时的本地解决方法,libinput 会读取该/etc/libinput/local-overrides.quirks文件。用户可以向此文件添加部分,为本地设备添加设备特性,但请注意任何修改都必须上传或者可能随时停止工作。

警告:模型怪癖是内部 API,可能随时更改。不保证向后兼容性。本地覆盖应仅在发行版更新 libinput 包之前使用。

因此,quirks 子系统不是配置 API。如果您遇到的问题可以通过 quirk 解决,则该 quirk 很可能需要上游。

话虽如此,放置在文件中的以下代码/etc/libinput/local-overrides.quirks可帮助 OP 获取弹跳行为:

[SINOWEALTH Wired Gaming Mouse]
MatchName=SINOWEALTH Wired Gaming Mouse
ModelBouncingKeys=1

鼠标型号名称来自libinput list-devices | grep Device输出。要使此功能正常工作,libinput 至少需要为 1.12.0 版本(对于 OP 它适用于 libinput 1.15.0)

答案2

另一种方法是在终端中执行以下命令

#!/bin/sh

sudo mkdir -p /etc/libinput
sudo tee /etc/libinput/local-overrides.quirks >/dev/null <<ENDHERE
[Never Debounce]
MatchUdevType=mouse
ModelBouncingKeys=1
ENDHERE

然后重新启动计算机

我在 Reddit 上找到了这个解决方案:禁用双击预防

相关内容