2

The Insert and Caps Lock keys just get in the way. This superuser question asks how to disable Insert, but appears to be for Windows 7 because it does nothing for me on Windows 8.1. I've been able to disable Caps Lock using this registry entry:

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

but the suggested solution:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Value Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,52,e0,00,00,00,00

continues to overwrite text in various text editors, even after a reboot. To be clear, I would like to disable BOTH Caps Lock and Insert, ideally in a single registry key.

2 Answers 2

0

You need to specify three entries in the map as described in Scan code mapper for keyboards.

For instance, I use next remapping on my Windows 8.1 (but since XP times): CapsLock behaves the same way as LShift and its functionality is remapped to ScrollLock; of course, the latter functionality is lost i.e. ScrollLock now behaves the same way as CapsLock would before all remapping. That remapping appears in the registry as follows:

==> reg query "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
    Scancode Map    REG_BINARY    0000000000000000030000002A003A003A00460000000000

i.e. in terms of registry editor export:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,2a,00,3a,00,3a,00,46,00,\
  00,00,00,00

Description: (the following table contains these entries broken into DWORD columns (little-endian format preserved) and the words are described in hexadecimal i.e. swapped)

00,00,00,00 ,00,00,00,00 ,03,00,00,00 ,2a,00,3a,00 ,3a,00,46,00 ,00,00,00,00
00000000     00000000     03000000     2A003A00     3A004600     00000000
│            │            │            │            │            │
│            │            │            │            │            └─ Null terminator
│            │            │            │            │
│            │            │            │            ├─ ScrollLock -> CapsLock
│            │            │            │            ╘═     0x0046 -> 0x003A
│            │            │            │
│            │            │            ├─ CapsLock -> LShift
│            │            │            ╘═   0x003A -> 0x002A
│            │            │
│            │            └─ Three entries in the map (including null entry)
│            │
│            └─ Header: Flags. Set to all zeroes.
│
└─ Header: Version. Set to all zeroes.

Read Keyboard-internal scancodes and Microsoft Keyboard Scan Code Specification for Insert key scan code value. I would say 0xE052 however can't see the sense of next note (applied to Insert, Delete, arrows etc.):

These keys may have additional “shift” and/or “unshift” scan codes preceding the Base Make code and following the Base Break code, depending upon the current state of Num Lock and the state of Shift key/s (when multiple keys are held down at the same time).

0

You may be able to disable Insert in the text editor itself. For example:

  • Notepad++, Settings > Shortcut Mapper > Scintilla commands, change SCI_EDITTOGGLEOVERTYPE to None and click Apply
  • Visual Studio, Tools > Options > Environment > Keyboard, remove the shortcut binding for Edit.OvertypeMode
  • Eclipse, Windows > Preferences > General > Keys, find the Toggle Overwrite command in the Text Editing category and click Unbind command

Feel free to extend the list above if you know of major text editors that offer the ability to remove Insert.

1
  • The "while not directed at your specific question" should have been a clue that this post is not appropriate for this location. This is good information, just not here. Jan 31, 2017 at 18:52

You must log in to answer this question.

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