如何禁用无线 USB 键盘触摸板上的捏合、缩放和滑动功能?

如何禁用无线 USB 键盘触摸板上的捏合、缩放和滑动功能?

我正在使用搭载 Ubuntu 20.04 的 Intel NUC。它主要用作 HTPC 和浏览网页。我想使用内置触摸板的无线键盘。我试过两个,每个都有类似的问题。当我使用两指滚动时,Logitech K400+ 喜欢自动缩放。它通常工作正常,但会定期放大。1byOne 的类似键盘在不缩放方面做得更好,但它喜欢将鼠标光标移动输入为滑动......这会将我带到另一个应用程序或桌面。

我已经阅读了几天有关 xinput 和 libinput 的内容。设备列表属性没有显示任何明显是缩放、捏合或滑动功能的内容。

我想找到 Linux 中处理触摸板输入的位置并让它忽略这些功能(我使用 ctrl-shift-+ 和 - 来放大和缩小...不想让触摸板这样做)。

我已阅读过有关更改为 synaptics 的信息,但在其文档中找不到任何可以回答我的问题的内容。

答案1

问题出在键盘本身。有关更多信息,请参阅 libinput 的回答。基本上,键盘没有适当的错误检测功能,并向系统发送用户不希望的信号。目前没有简单的方法来关闭手势。

答案2

在写这些话的时候,通过 libinput 代码 grepping 显示只有一个赋值给gesture.enabled在功能上tp_init_gesture,其基本含义是“如果我们能够可靠地使用该触摸板执行手势,那么我们就执行它们”。因此 libinput 不允许禁用它们。

理论上,在 gnome-shell 进入应用程序之前拦截事件是可能的,但似乎没有任何“官方”方法可以做到这一点,因此如果评论中列出的扩展对您没有帮助,那么您似乎运气不佳。您可以为 gnome-shell 创建 RFE 以支持该功能

解决方法

作为一种黑客解决方法,您可以自己构建 libinput,并替换我引用的行

    tp->gesture.enabled = !tp->semi_mt && tp->num_slots > 1;

    tp->gesture.enabled = false;

这应该可以为你禁用手势。


我在#gnome:gnome.org Matrix 频道上提问,值得引用Alexander Mikhaylenko

当我使用两指滚动时,Logitech K400+ 会自动缩放。它通常工作正常,但会定期放大。1byOne 的类似键盘在不缩放方面做得更好,但它喜欢将鼠标光标移动输入为滑动。这会将我带到另一个应用程序或桌面

它们由 libinput 生成

我知道,因为我做了几个手势

硬件的工作是报告触摸位置

经常会出错

然后 libinput 尝试针对该特定设备进行修复

每次看到类似的错误,你都会将其报告给 libinput

因为它的工作是规范硬件发送的任何垃圾信息,以便 libinput 用户能够获得正确的事件

如果不可能的话,libinput 也是可以禁用该设备手势的组件

例如,它对所谓的半多点触控触摸板执行此操作

基本上,它发送的是手指数量和边界框,而不是旧的位置,如果你有一台<2013年的笔记本电脑,它可能有一个,除非它是一台MacBook

所以你可能想要向 libinput 报告问题

相关内容