Men are often irrational beings. For example I simply hate
F1 key. I know, that key is there to give me help but realistically if I need help I will google for it. Absolutely every time I press
F1 it is by accident and it leads to annoying wait for Help to load – especially in Microsoft Office. That key is useless!
Fortunately, deep in Microsoft’s Keyboard and mouse class drivers documentation there is a chapter on scan code mapper for keyboards. In short, there is a functionality enabling us to remap any key just by writing entry in registry without any external programs.
At first I though to simply disable
F1 key. But reading a bit further into documentation I though better – why not use
F1 key as a mute button?
For this conversion it is necessary to know codes for both
Mute key. A bit of searching later I’ve found that information in USB HID to PS/2 Scan Code Translation Table. This ancient document has exactly what we need under PS/2 Set 1 Make column.
F1 key has scan code
0x3B while mute is a bit more involved
0xE020 (disabling would be
Scancode Map field is a bit confusing at first, but table examples do help a lot. For my use-case, table would be as this.:
|0x00000000||Version||Set to all zeroes.|
|0x00000000||Flags||Set to all zeroes.|
|0x00000002||Count||Two entries in the map (including null entry).|
These values would need to be written in registry under key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout as binary entry named
Scancode Map. Of course, since binary data has to be little-endian, (hex) value would actually be:
00000000 00000000 02000000 20E03B00 00000000