1

I'm running NVDA inside a virtual machine on my macOS using VMware Fusion. I do that since many years, and it's generally a very smooth experience, except that I need to map a keyboard key to Insert. I use Karabiner-Elements to do just that: it maps my right option key to Insert. This runs just fine, but it is quite a complex installation/configuration, and when asking clients to do the same, they are quickly overwhelmed. (Sadly, while VMware Fusion offers a feature to map certain keyboard combos to different ones, it does not allow to just change a single key's [ie. right option to insert] mapping.)

So I tried to go the route of activating the NVDA option to use caps lock as modifier key, too. But this just does not seem to work - or do I do something wrong?

  1. Would I need to keep holding caps lock while hitting (for instance) N (to show the NVDA menus)
  2. Or would pressing and releasing caps lock trigger some special "I am on Insert now" mode, so I could just hit another key like N? And then press and release caps lock again to deactivate the "special mode" again?

Neither option works for me. What I can say though is that the "real" caps lock functionality does not get activated anymore with the option checked, unless I hit it twice in a row quickly. So it at least seems to have some effect...

Am I doing something wrong? Any help is highly appreciated.

Joshua Muheim
  • 12,617
  • 9
  • 76
  • 152
  • 1
    Ignoring the VM aspect for now, when the capslock option is turned on in NVDA keyboard settings, then it acts like the insert key in that you hold it down while pressing another key. So `capslock+N`will bring up the menu just like `ins+N` will. Capslock is not a "sticky" key so your #2 is not correct. Follow your #1. It sounds like your option is set correctly because you have to "double tap" on the capslock key to actually turn capital letters on. – slugolicious Feb 16 '22 at 19:26
  • Thank you, at least I know now how it **should** work... – Joshua Muheim Feb 22 '22 at 19:36

1 Answers1

0

You're not doing anything wrong. Unfortunately, I don't think there's a simpler solution than the one you described.

A couple of things are happening here:

VMWare Fusion doesn't send the caps lock key to the host

Via this article:

... the Caps Lock key is not recorded in the software (and thus cannot be read by other programs). It is a hardware-only toggle.

I'm experiencing the same behavior with Remote Desktop on macOS.

NVDA doesn't offer Mac-friendly modifier keys

The only available modifier keys are Insert (not available on most Mac keyboards) and Caps Lock (not sent to VMs).

This issue is tracked as a bug in NVDA but hasn't been prioritized. Via this comment:

The initial description here is a use-case of NVDA running in a virtual machine while on Apple hardware. This is not a primary use-case for NVDA, which is why this issue has not been prioritized. As far as we are aware, the majority of users are served well by the current options.

Workaround

For folks who are looking for details on the Karabiner setup described in the question, check out How to map your Mac's CapsLock key to a NVDA or JAWS key in a Windows virtual machine.

Ryan DeBeasi
  • 256
  • 1
  • 6