Keyboard remapping settings ignored in Windows 7 vm

I’m attempting to use Stuartd Keymapper utility to remap the idiot key to the left Control key.

Remapping as per the screenshot and rebooting the VM does not produce the desired behavior. Pressing the Caps Lock key briefly capitalizes a single letter but otherwise does nothing. The default Windows keyboard layout is dvorak.


It may be worth noting that I have successfully remapped the idiot key in dom0 and all other linux VMs by running this command in a dom0 terminal

setxkbmap -option ctrl:nocaps

Is anyone else experiencing this issue?

Reproduced this issue using SharpKeys app.

I have verified that the following registry key has been added and then rebooted the VM. Same behavior from Caps Lock. Will briefly capitalize a letter, but does not act as a left CTRL key.

Here is the registry entry

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

Tried remapping with the Sysinternals Ctrl2Cap utility and that failed in the same way. Maybe this is a Xen issue specific to Windows VMs.

I should also have noted that the dom0 keyboard layout is also ignored by the Windows Qube. The workaround for that was easy enough, add an alternate keyboard layout to Windows. For whatever reason I can’t do the same when attempting to remap the Caps lock key.

In Qubes R4.2, the WScript.Shell call from Powershell is broken for Windows 7, but not for Windows 10. If that is used to enter the registry key values, that might be the cause.

So far, I have not found a means to repair this bug.

None of the tools listed above use powershell to my knowledge. I’ve also tried importing the scancode map via a .reg file and that has no effect as well.