虚拟化中额外的鼠标按钮不起作用(VMware/VirtualBox、ubuntu 主机)

虚拟化中额外的鼠标按钮不起作用(VMware/VirtualBox、ubuntu 主机)

我正在尝试在 Ubuntu 上运行 VMware Workstation 和/或 VirtualBox。除了额外的鼠标按钮(前进/后退)外,虚拟机在这两个应用程序中都运行良好。在 Ubuntu 中,鼠标按钮全部正常工作。

虚拟化应用程序:VMware Workstation 10.0.1、最新的VirtualBox

我作为主机测试过的 Ubuntu 版本:12.04、13.10、14.04 beta

我测试的客户操作系统:Windows 7,实时模式下的几个 Linux 操作系统

我测试过的鼠标(均带侧键):Logitech M510(统一接收器)、旧款 Razer Copperhead、无名鼠标

我已经尝试了很多在线找到的解决方案,例如更改 VMware WS 上 .vmx 中的鼠标设置(mouse.vusb.enable,...),更改 VMware/VirtualBox 上的输入设置,在客户机操作系统上重新安装客户机工具,...

我认为这是 Ubuntu 的问题,而不是虚拟化应用程序的问题。有人有解决方案吗?

答案1

可能的解决方法:

编辑虚拟机的 .vmx 文件后添加

mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"
usb.generic.allowHID = "TRUE"

您将能够在虚拟机中使用五键鼠标。为此,请打开虚拟机,然后导航到Virtual Machine > Removable Devices > [Your Mouse] > Connect (Disconnect from Host)。您将收到几个警告,提示您将无法再在主机上使用鼠标,只需单击“确定”即可。

现在,您只能在虚拟机内使用鼠标,无论是全屏模式还是窗口模式。按下Ctrl-G键盘上的 键,即可删除主机鼠标图标,并完全沉浸在虚拟机中。一旦您在虚拟机外再次需要鼠标,请按下Ctrl+Alt,然后松开。现在焦点回到您的主机操作系统。按住Alt并按下V以调出Virtual Machine菜单,然后使用箭头键导航到Virtual Machine > Removable Devices > [Your Mouse] > Disconnect (Connect to Host)

现在一切都恢复正常了。希望 Ubuntu 或 VMWare Player 能尽快做出改变,让一切变得更容易。

答案2

为了使额外的鼠标按钮在 VMware 下工作,请编辑 configfile.vmx(附加以下行):

mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"

上述设置将启用具有 20 个按钮的虚拟 vmware 鼠标。但是,在某些情况下,vmware 不会将到达主机的鼠标事件映射到正确的客户机事件。

它为什么无法发送正确的鼠标事件是一个尚未涉及的好问题。

在客户操作系统中启动并运行以下命令。xev | grep -i "button"在终端中运行。移至生成的窗口,单击要分配或交换的按钮一次。xev输出已注册的鼠标事件,在许多情况下,应为鼠标按钮 8 或 9 的额外鼠标按钮被接收为鼠标按钮事件 16 或 17。

鼠标按钮事件的重新分配可以通过以下方式完成,例如xinput,以下操作使设备 ID 8 的鼠标按钮 16 充当鼠标 8,鼠标 17 充当鼠标 9。

xinput set-button-map 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 9

答案3

您无法在 VirtualBox 和 VMware 中模拟超过 3 个按钮。这是因为它向客户系统呈现了一个(超级)标准 3 键鼠标。如果他们愿意,这可能是可行的,但目前答案是否定的。


那么,为什么它在 Windows 中有效?因为 Linux 和 Windows 实现遵循不同的路线图,并且“每个前端都有自己的获取鼠标输入的方式”(来源)。这可以在超级用户的另一个问题中看到

答案4

在 Windows 10 主机(在 ubuntu 上应该相同)、VMware Workstation Player 12 和 logitech m510 鼠标上进行了测试。

如果这样做,您的鼠标将只能在虚拟机上工作,因此您需要知道要启用和禁用的键盘快捷键,除非您有两个鼠标,或者一个触摸板和一个鼠标,就像笔记本电脑一样。

  1. 转到您的虚拟机文件夹并找到该.vmx文件。
  2. 在记事本中编辑并添加:

    usb.generic.allowHID = "TRUE"
    usb.generic.allowHID = "TRUE"
    usb.generic.allowLastHID = "TRUE"
    
  3. 打开虚拟机并导航到Virtual Machine > Removable Devices > [Your Mouse] > Connect (Disconnect from Host)。执行此操作时,鼠标仅在虚拟机上起作用。

  4. 在虚拟机上安装罗技鼠标驱动程序/软件(如果你愿意,可以在所有操作之前完成这一步)
  5. 您可以按下键盘上的Ctrl+G来摆脱主机鼠标图标并完全沉浸在虚拟机中。
  6. 当您想再次在主机上使用鼠标时,请按Ctrl+ Alt,然后松开,这样焦点就会集中在 vmware player 上,而不是虚拟机上。现在您可以使用常规的 Windows 键盘快捷键。在这种情况下,按Alt+P打开 vmware 工作站播放器菜单,然后使用键盘箭头键导航到Virtual Machine > Removable Devices > [Your Mouse] > Disconnect (Connect to Host)

相关内容