Why don't my keyboard shortcuts work in VMWare Fusion 6?

I've found three conceptual hurdles that one needs to understand for any of this to make sense.

Keyboard and Mouse Profiles

For starters, it should be made clear that in VMWare Fusion's application preferences, you edit settings for a keyboard and mouse profile, but these settings do not necessarily apply to your current virtual machine! Your VM is assigned a profile on the VM settings panel under Keyboard & Mouse, accessible by default with command-e or in Virtual Machine -> Settings, or from the Virtual Machine Library -> Settings button. Identify which profile your VM is using to ensure your modifications made in application preferences have an effect.

Shortcuts and Windows Key Mapping

In VMWare's application preferences, when setting up the details of a specific keyboard/mouse profile, there are shortcuts to define and customize, and also some important settings on the "Mac Host Shortcuts" tab--particularly the Command key -> Windows key setting. Many of the shortcuts that are available are listed as various combinations with the command key. HOWEVER, these shortcuts are not really mapped to the command key! Rather, they are being mapped to the Windows key, with the presupposition that the command key you intend to use will be mapped to the Windows key in the aforementioned "Mac Host Shortcuts" setting.

This means that if you normally want to use command-s (on the left command key) as a save shortcut to control-s in Windows, but your Windows key mapping is set to the right command key, your command-s shortcut WILL NOT WORK!

Input Grab and Release/Ungrab

If you've configured it to do so, your host OS will catch specified operating system-level shortcuts and gestures (like mission control and the application switcher), but during normal operation all other input will be sent through to the virtual machine unless a shortcut exists in your keyboard and mouse profile. This includes keyboard shortcuts that normally exist in the application menu items of VMWare fusion, excepting those that are also listed on the "Fusion Shortcuts" tab of the keyboard/mouse profile. Unfortunately, this list of shortcuts is small and cannot be expanded, but there is one shortcut in particular that allows us to break free of the virtual machine context and send shortcuts directly to the VMWare Fusion application. This is the "Ungrab Mouse and Keyboard" shortcut (command-control), and it cannot be edited or removed.

There is a bug related to this shortcut that arises when only one of the command keys is being mapped to the windows key in your keyboard profile. As mentioned above, the keyboard shortcuts in this list are actually looking for the windows key configured in the command key mapping -- EVEN THE UNGRAB SHORTCUT. If you hold down a command key that is not mapped to windows and then tap control, you will enter a state of sticky windows key, where the virtual machine behaves as though the windows key is being held down until it is "pressed" once again.

So, to recap: In the event that you want to assign and use a keyboard shortcut to suspend your virtual machine, you should do the following:

  • Use System Preferences -> Keyboard to choose an application shortcut for the Suspend menu item. Some shortcuts may not be available, so make sure your is valid by checking the desired menu item after registering your shortcut -- your desired shortcut should appear next to the item in the menu. If it doesn't, try something else.
  • Configure your VM keyboard profile to your liking according to the guidelines above.
  • When accessing the shortcut, first press command-control (where Command is a key that VMWare is treating as a Windows key) to release input from the VM. Your cursor will change to a hand if you did this correctly.
  • From this point, you can access any keyboard shortcut on a menu item, (like preferences: command-,) including your customized application shortcut.