On my Mac, I have a Windows partition that I can either directly boot into (with Boot Camp) or run as a virtual machine (with VMWare Fusion). I set up Windows to reverse the scroll direction of my mouse. This works when I'm running Windows in Boot Camp. But when I'm in VMWare, the scroll direction is reversed twice — once by Windows and once by macOS — which puts it back to regular scrolling.

How can I set this up to have natural scrolling in Windows in both Boot Camp and VMWare?

  • You may want to clarify your question, because the two answers posted so far I do not believe will solve you problem. What will solve your problem is to revert to normal settings within Windows while running as a virtual machine. That way both macOS and Windows in the virtual machine will function the same based on the mouse settings in macOS. At a minimum you could manually run a script from within Windows or find a way to automate it based on which environment it booted to, Boot Camp or virtual machine. – user3439894 Aug 4 '17 at 15:48
  • It's been to long since I ran Windows natively (Boot Camp) and it as a VM (Boot Camp as a VM) but I do remember there was a way to programmatically determine which environment it was and programmatically act accordingly. IIRC It had to do with checking if some function of VMware Tools was running, as it only ran when run as a VM, not while in Boot Camp. The program I wrote was placed in the Startup Group, checked which environment and then made some changes accordingly. – user3439894 Aug 4 '17 at 15:48
  • What version of Windows are you running? – user3439894 Aug 4 '17 at 18:00

Fortunately the HID device ids used when running bootcamp natively and running it under a VM (at least under the Parallels VM I use) are different. Here is what I did on Windows 10

  1. Boot natively.
  2. Identify the device ID's in use from the Mouse Control Panel
    • Start->Settings. Click on Devices. Click on Mouse. Click "Additional mouse options"
    • Click on the Hardware tab. You should see "HID compliant mouse" You may see more than one if you also have, e.g, a Magic Trackpad. Only the devices in use will appear here. In this case this means only those used when running natively.
    • Select each device and click the Properties button.
    • In the properties windows,, click the Events tab. The device ID is given in the Information box at the bottom.
  3. Find each device in regedit (run it as Administrator). They are at HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters replacing the *'s with the ID you get from the mouse control panel.

  4. Change the values of the FlipFlopWheel and FlipFlopHScroll properties to 1.

The command you used from https://superuser.com/a/364353 changes all HID devices in the registry having a FlipFlopWheel property. Unfortunately I haven't figured out any automated way to identify just those currently in use hence the manual method above.

If you've already run the script and set all devices to flip-flop, boot in the VM, follow the steps above to identify the "mouse" devices in use and change their FlipFlopWheel and FlipFlopHScroll properties back to 0.


In system preferences, mouse, there is a check box to set the scrolling direction. This sets it for all apps though. I don't know of a way to set it for specific apps.


Try Scroll Reverser. While it's not automatic, it allows you to reverse your scrolling direction from the menu bar icon easily. Unfortunately the app doesn't support activating/deactivating it using a keyboard shortcut, but you can likely use AppleScript to set a keyboard shortcut for it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .