移动鼠标时无法滚动 - Win10 上的 Fedora 28 VM guest 虚拟机

移动鼠标时无法滚动 - Win10 上的 Fedora 28 VM guest 虚拟机

在在这里提出我的问题之前我已经搜索了一段时间,但仍然找不到任何答案。

我注意到 Linux 上的鼠标滚动处理通常很差(也许只是 Gnome)。

我在 Windows 10 主机下的 VirtualBox VM 上运行 Fedora 28。我注意到,当鼠标不动时,使用鼠标滚轮滚动效果非常好,但每当我开始移动鼠标时,滚动根本不起作用,直到鼠标再次不动为止。

你们中有人知道如何使其在移动鼠标时也能工作吗?我是否缺少某些配置或其他内容?

我必须承认我不是一个可靠的 Linux 用户,而且我对外围设备配置了解不多。

答案1

我发现了这个线程 https://bbs.archlinux.org/viewtopic.php?id=223470

基本上,如果我xev | grep -e "ButtonPress" -e "ButtonRelease"在滚动时运行并将鼠标移到窗口上,我可以清楚地看到事件,这意味着这是桌面环境/窗口管理器问题。

人们在这里讨论更多关于这个问题的信息https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput/issues/9

如果我只是firefox从终端启动,我会在移动鼠标时遇到滚动事件被忽略的情况,但如果我这样做,GDK_CORE_DEVICE_EVENTS=1 firefox那么一切都会按预期进行。

线程位于https://forums.virtualbox.org/viewtopic.php?f=3&t=79002&start=15包含来自 bugmenot 用户的更有趣的回复:

运行xinput应该显示 X 认为正在发送事件的设备:

$ xinput 
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ VirtualBox mouse integration              id=9    [slave  pointer  (2)]
⎜   ↳ VirtualBox USB Tablet                     id=10   [slave  pointer  (2)]
⎜   ↳ ImExPS/2 Generic Explorer Mouse           id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Sleep Button                              id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]

VirtualBox mouse integration显然,鼠标事件在和设备之间划分VirtualBox USB Tablet。其中一个接收移动事件,而另一个接收滚动事件。在某些应用程序中,一旦事件源变为活动状态,另一个事件源就会被忽略。

解决方案是暂时禁用VirtualBox mouse integration(上面的列表中的 id=9)

xinput disable 9

或者完全通过添加文件来完成,例如/usr/share/X11/xorg.conf.d/50-vbox-mouse-fix.conf

Section "InputClass"
        Identifier "Fix VBox scroll wheel"
        MatchProduct "VirtualBox mouse integration"
        Option "Ignore" "on"
EndSection

(该MatchProduct指令正是 的字符串输出xinput)。

答案2

安装轮子包解决了我的问题。

百胜安装 imwheel (fedora)

相关内容