Fedora

移動滑鼠時無法滾動-Win10上的Fedora 28 VM guest

  • November 20, 2021

我在這裡問我的問題之前已經搜尋了一段時間,但仍然找不到任何答案。

我注意到滑鼠滾動在 Linux 上的處理通常很差(也許只是 Gnome )。

我在 Windows 10 主機下的 VirtualBox VM 上執行我的 Fedora 28。我注意到當滑鼠不動時使用滑鼠滾輪滾動效果很好,但是每當我開始移動它時,滾動根本不起作用,直到滑鼠再次不動。

你們中有人知道如何使它在移動滑鼠時也能正常工作嗎?我是否缺少一些配置或其他東西?

我必須承認我不是一個可靠的 Linux 使用者,而且我對外圍設備配置知之甚少。

我發現了這個執行緒 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)。

引用自:https://unix.stackexchange.com/questions/446314