The layout of the Cherry JK-03 always bugged me, specifically the six-key block above the arrow keys. Home sits bottom left, End top right. So I swapped the keys:

FactorySwapped
InsertEndDeleteInsert
DeletePage ↑HomePage ↑
HomePage ↓EndPage ↓

The Cherry JK-03

Moving the keycaps is the easy part. For the keys to actually do what is printed on them, Windows has to remap them.

Scancode Map

Caution: The registry is a great place to break Windows thoroughly. Create a restore point or export the key first, and only apply what you understand. A wrong entry in the Scancode Map can disable keys; the on-screen keyboard then helps to undo it. Try this at your own risk.

Every key sends a scancode when pressed. The registry value Scancode Map tells Windows to use a different scancode for a key. My file for this (the comments use the German key names: Pos1 = Home, Ende = End, Einfg = Insert, Entf = Delete):

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,05,00,00,00,\
; Pos1  --> Ende
4F,E0,47,E0,\
; Ende  --> Einfg
52,E0,4F,E0,\
; Einfg --> Entf
53,E0,52,E0,\
; Entf  --> Pos1
47,E0,53,E0,\
00,00,00,00

This is how the value is structured:

  • The eight zero bytes at the start are the header.
  • 05,00,00,00 is the number of entries: four remappings plus the end marker.
  • Each entry has four bytes: first the scancode that should apply, then that of the key pressed. The bytes are swapped in each case, so End (E0 4F) becomes 4F,E0.
  • 00,00,00,00 ends the list.

Importing requires administrator rights, and it only takes effect after a restart. To get rid of it, delete the Scancode Map value and restart.

The six-key block after the swap

The catch

The remapping applies to every keyboard on the computer. If I plug in a different one, Home, End, Insert and Delete are swapped there.