移动鼠标指针时,Linux 中的鼠标滚轮不一致且不稳定

Dan*_*ker 15 linux mouse scroll-wheel

我在 VirtualBox 中有 Manjaro Linux,在某些应用程序(例如终端)中,鼠标滚轮似乎没有注册许多滚动刻度。有时它滚动得很好,然后突然它只滚动一半或根本停止滚动。在 Firefox 等其他应用程序中,滚轮始终有效。

经过一些实验后,我发现在移动鼠标指针时根本无法滚动。然而,当我完美地握住指针时,滚动会按预期工作。

该站点上有一些相关问题,但没有一个是由于在 Linux 中滚动时移动鼠标指针而导致的特定问题。

Dan*_*ker 14

我找到了这个帖子在 VirtualBox 论坛上的一个,准确描述了我的问题。它似乎与 VirtualBox 无关,因为 VMWare 表现出相同的行为。

对我有用的解决方案:

  1. 检查您当前是否正在使用libinput.

    $ grep "Using input" /var/log/Xorg.0.log
    [     0.000] (II) Using input driver 'libinput' for 'Power Button'
    [     0.001] (II) Using input driver 'libinput' for 'Sleep Button'
    [     0.002] (II) Using input driver 'libinput' for 'Video Bus'
    [     0.003] (II) Using input driver 'libinput' for 'VirtualBox mouse integration'
    [     0.004] (II) Using input driver 'libinput' for 'VirtualBox USB Tablet'
    [     0.005] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
    [     0.006] (II) Using input driver 'libinput' for 'ImExPS/2 Generic Explorer Mouse'
    [     0.007] (II) Using input driver 'libinput' for 'VirtualBox USB Tablet'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装evdev输入驱动程序。
    在 Manjaro 上xf86-input-evdev,这可以在已经安装的包中找到。

  3. evdev通过修改 X11 配置启用驱动程序。
    在目录中,/usr/share/X11/xorg.conf.d/我已经有一个10-evdev.conf包含evdev配置的文件。它只是被更高优先级的40-libinput.conf配置覆盖。所以我所要做的就是:

    cd /usr/share/X11/xorg.conf.d/
    sudo mv 10-evdev.conf 80-evdev.conf
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新开始。

  5. 验证evdev现在是否使用驱动程序:

    $ grep "Using input" /var/log/Xorg.0.log
    [     0.000] (II) Using input driver 'evdev' for 'Power Button'
    [     0.001] (II) Using input driver 'evdev' for 'Sleep Button'
    [     0.002] (II) Using input driver 'evdev' for 'Video Bus'
    [     0.003] (II) Using input driver 'evdev' for 'VirtualBox mouse integration'
    [     0.004] (II) Using input driver 'evdev' for 'VirtualBox USB Tablet'
    [     0.005] (II) Using input driver 'evdev' for 'AT Translated Set 2 keyboard'
    [     0.006] (II) Using input driver 'evdev' for 'ImExPS/2 Generic Explorer Mouse'
    [     0.007] (II) Using input driver 'evdev' for 'VirtualBox USB Tablet'
    
    Run Code Online (Sandbox Code Playgroud)

    然而,这还没有解决我的问题。显然我也需要imwheel

  6. 安装imwheel. 在 Arch 上,我必须安装imwheel AUR 包。
  7. 运行imwheel以验证这是否解决了问题。

    $ imwheel
    
    Run Code Online (Sandbox Code Playgroud)
  8. 剩下的就是imwheel在启动时运行。我运行这个命令,因为它只拦截滚轮:

    imwheel -b 45
    
    Run Code Online (Sandbox Code Playgroud)

这解决了问题!滚动现在可以在所有应用程序中正常工作。