I am using a Logitech G9 mouse and running VMWare Workstation 6.5.3 on Vista x64. The guest OS is Win XP, and has the most current version of VMWare Tools installed. Left / right buttons and mouse wheel scrolling work fine in the guest OS, but the back / forward buttons are apparently not recognized.

I have tried installing the Logitech software inside the guest OS as well, but it still did not recognize the back / forward buttons. (I didn't really expect this to work since the guest OS doesn't actually see the mouse hardware as a Logitech G9 directly anyway.)

I vaguely remember seeing something a while back about editing the virtual machine config file to specify a 5-button mouse rather than the default 3-button setup, but I can't seem to find any specifics on how to do so in the VMWare documentation. Does anyone know if such a workaround exists, or is 5-button mouse functionality just not supported?


After adding usb.generic.allowHID = TRUE to the vmx file, just enable USB for that VM and then go to the Hardware Manager (guest system) and "scan for hardware changes". New USB Devices will then be recognized by the VM and after that your back/forward buttons should work without deactivating the mouse in the host system.

  • Thanks! That seems to have worked perfectly for me. Not sure if I just never tried this or if something has been fixed in VMWare Workstation 7 (I just upgraded) but either way, thanks! – Tim Lara Dec 6 '09 at 18:04
  • 4
    I just ran in to the same problem, trying to get the forward/back button to work with Ubuntu as guest OS. It turns out that I needed mouse.vusb.enable = "TRUE" in the .VMX-file as well to get it to work correctly. – Arjen Sep 14 '12 at 17:41
  • Has anyone else still had the problem where you need to select the mouse from the Removable Devices menu (thus disconnecting it from the host) before you're able to use the mouse, despite setting usb.generic.allowHID AND mouse.vusb.enable to true? I've got an Ubuntu host and a Red Hat guest – MattSayar Mar 12 '14 at 23:23

Edit the .VMX file (while VM powered off) using notepad and add the following lines:

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

Save file and exit notepad.

  • +1 This works perfectly and is really simple compared to the unnecessarily complex answers below. – Hubro Aug 4 '13 at 18:33
  • This doesn't seem to work with workstation 9 any more. – Cheetah Dec 11 '13 at 20:37
  • @Cheetah I can confirm that it do work on workstation 9. – ablacksheep Jan 17 '14 at 15:41
  • Worked for me as well with a Logitech G700 setup with Logitech Gaming Software. Using Ubuntu 14.04. Added the above lines as noted and worked immediately. – Halsafar Oct 15 '14 at 0:31
  • Worked perfectly with a Logitech G700s running Ubuntu 15.10 in Workstation 12. Thanks! – jaseeey Jan 23 '16 at 12:13

For workstation 10 you need another line in you .vmx than the previous suggestions. Now it's:

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


  • The first line appears to be unnecessary according to the discussion you linked to, and I can confirm that it works for me without the first line. I used this in my Vagrantfile to allow me to use my forward/back inside the Vagrant VM as that's where my productivity happens throughout the day. vmw.vmx["mouse.vusb.enable"] = "TRUE" and vmw.vmx["mouse.vusb.useBasicMouse"] = "FALSE" – dragon788 May 3 '16 at 16:25
  • That solution unfortunately does not work for VMWare Player 12, do you have a solution for that? – Erik Jan 2 '17 at 19:50

It won't work directly. Because VMware only emulates 6 states with it's generic mouse. (left, right and middle mouse button, scroll wheel up, down, pressed)

But as a workaround you can use my tool I've just written in AutoIt for I really needed this function as well.

#include <Misc.au3>

$dll = DllOpen("user32.dll")

Opt("WinTitleMatchMode", 2)
Opt("TrayIconHide", 1)
$vm = WinWait("VMware Workstation")

While True
    If WinActive($vm) Then
        If _IsPressed("06", $dll) Then
            While _IsPressed("06", $dll)
        ElseIf _IsPressed("05", $dll) Then
            While _IsPressed("05", $dll)
    ElseIf _IsPressed("05", $dll) And _IsPressed("06", $dll) Then
        If MsgBox(1 + 262144, "Exit", "Do you really want to exit...?") == 1 Then ExitLoop


Just compile this on your own with AutoIt or download the compiled executable from my webspace: http://jtmeyer.de/mousetool.exe This will wait for a window including "VMware Workstation" in it's Title and if any of the Thumb Mouse buttons are pressed (Code 05 + 06) the KeyCombination of Alt+Left/Alt+Right is pressed. If you press both buttons together the tool will exit if you confirm the appearing dialog box.

  • This will work with VMware Player using $vm = WinWait("[CLASS:vmware.fullscreenwindow]") – Brian Jul 7 '14 at 17:45
  • Great solution! I've implemented it with autohotkey but the concept is the same. The accepted solution doesn't work well for me, yes the buttons work but mouse movement feels weird (some kind of bad acceleration...). – flagg19 Dec 28 '16 at 11:17

as 2018:

This is a known bug of VMWare but still not solved.

I tried all of the answers. None of them worked for windows 10 under VMWare 14.1.3

Downgrading to VMWare 12.0.1 solved my problem.


Add this parameter in your VM's VMX file.

usb.generic.allowHID = TRUE

Your buttons should now work - no installation of logitech software or anything required.

  • 2
    Thanks - This setting does work, but with one caveat: You have to enable USB on the guest and then "connect" the mouse to the guest via the [VM --> Removable Devices] menu. This does enable the back / forward buttons, but it also disconnects the mouse from the host OS! Since I frequently switch back and forth between the guest and the host, this is not really a workable solution for me. If you were staying within the guest OS for extended periods of time, though it would work well. If there is no further workaround, I will probably still accept this answer as correct, though. – Tim Lara Sep 5 '09 at 3:15

For Windows host use AutoHotKey to change mouse button mapping:

 XButton1 :: !^+{NumpadLeft}
 XButton2 :: !^+{NumpadRight}

Then in guest OS map them back:

 !^+{NumpadLeft}  :: XButton1
 !^+{NumpadRight} :: XButton2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.