首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libinput按钮滚动:按钮按压和滚动之间的延迟

libinput按钮滚动:按钮按压和滚动之间的延迟
EN

Unix & Linux用户
提问于 2019-02-11 14:55:59
回答 2查看 461关注 0票数 3

我使用libinput为我的轨迹球启用“按钮滚动”,其中按住一个特定的按钮向下会导致球的运动转化为滚动运动。

代码语言:javascript
复制
xinput set-prop $TRACKBALL_ID "libinput Scroll Method Enabled" 0, 0, 1
xinput set-prop $TRACKBALL_ID "libinput Button Scrolling Button" 8

然而,在按下按钮和滚动转换开始之间可能有几百毫秒的延迟。时间表是这样的:

代码语言:javascript
复制
+---+---+-------
^   ^   ^
|   |   +-- scrolling starts
|   +-- start moving ball
+-- button down

当我开始移动球时,这并不重要--关键是在“按钮向下”和“好的,准备将运动转换为滚动”之间有一个固定的延迟。

这种延迟似乎是为了启用双模式按钮而存在的。如果我快速按下并释放按钮,它的正常功能(浏览器“后退”按钮)就会执行。

(有趣的是,即使在滚动输出开始之前,只要按下按钮,光标就会被呈现为静止的。)

有办法配置这个延迟吗?如果有必要的话,我很乐意牺牲双模式的使用。即使不是可配置的,谁定义了这个常量,在哪里?也许我能从源头上改变它。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-02-24 15:48:14

您可以更改@henrebotha突出显示的值,并编译libinput,以达到预期的效果。

这个延迟让我很沮丧,所以我修改了DEFAULT_BUTTON_SCROLL_TIMEOUT常量(在源代码这里中找到并编译了),这似乎解决了这个问题。在过去的一个小时里一直在测试,没有观察到任何奇怪的行为。

我跟随着此页的脚步。做任何事都像我以前有问题一样.

  1. 按照上面的链接安装构建依赖项(例如Ubuntu上的我)。
    • sudo pip3 install meson
    • sudo apt-get install ninja-build
    • sudo apt-get build-dep libinput

  2. git clone https://gitlab.freedesktop.org/libinput/libinput
  3. cd libinput
  4. ./src/evdev.c:53编辑到您想要的时间(50对我有好处)。即从#define DEFAULT_BUTTON_SCROLL_TIMEOUT ms2us(200)#define DEFAULT_BUTTON_SCROLL_TIMEOUT ms2us(50)
  5. sudo meson --prefix=/usr builddir/
  6. sudo ninja -C builddir/
  7. sudo ninja -C builddir/ install
  8. 重新启动。

这样就行了。

票数 2
EN

Unix & Linux用户

发布于 2019-02-11 15:15:32

/src/evdev.c:53 (Git提交df527b07b47f5f512db48f0c30c76137d173e230)的libinput repo中找到了硬编码的常量:

代码语言:javascript
复制
#define DEFAULT_BUTTON_SCROLL_TIMEOUT ms2us(200)

可悲的是,这意味着它是不可配置的。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/499959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档