Realforce 101 키보드를 위한 키 리매핑(레지스트리)

2019-04-04   //   alexken작성   //   기술  //  No Comments

메인 키보드로 10년전 산 Realforce 101을 사용하고 있다.
즉 한영키와 Windows 키가 없다.

한영 전환은 shift-space로 하기 때문에 내겐 문제되지 않지만,
Caps Lock → Ctrl로
Ctrl → Windows 키로 동작하게 할 필요가 있다.

램상주하는 키 리매핑 프로그램도 있는거 같지만,
그냥 레지스트리를 편집해서 쓰는게 별도의 프로그램도 필요없고, 깔끔하다.

그래서 늘 아래와 같이 reg파일을 만들어 적용해서 사용하고,
2006년 작성한 CapsLock을 Ctrl로…도 이렇게 만들어진 것이다.

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,03,00,00,00,1d,00,3a,00,e0,5b,1d,00,00,00,00,00

00,00,00,00, // 버전 (항상 0)
00,00,00,00, // 헤더 플래그 (항상 0)
03,00,00,00, // 키 리매핑 2개 + NULL 1개 = 총 3개
1d,00,3a,00, // L Ctrl(1d,00) ← CapsLock(3a,00)
e0,5b,1d,00, // L Win(e0,5b) ← L Ctrl(1d,00)
00,00,00,00 // NULL (종결자)

Keyboard Scancode & Symbolic Constant Table

   Key            Scan                  
Num Label         Code   Symbolic Constant      Value
--- ------------- ----   ---------------------- --------  
  1  ~ `          29     VK_OEM_3               0xC0  
  2  ! 1          02                            0x31    
  3  @ 2          03                            0x32    
  4  # 3          04                            0x33    
  5  $ 4          05                            0x34    
  6  % 5          06                            0x35    
  7  ^ 6          07                            0x36    
  8  & 7          08                            0x37    
  9  * 8          09                            0x38    
 10  ( 9          0A                            0x39    
 11  ) 0          0B                            0x30    
 12  _ -          0C     VK_OEM_MINUS           0xBD
 13  + =          0D     VK_OEM_PLUS            0xBB
 15  Backspace    0E     VK_BACK                0x08
 16  Tab          0F     VK_TAB                 0x09
 17  Q            10                            0x51    
 18  W            11                            0x57
 19  E            12                            0x45    
 20  R            13                            0x52
 21  T            14                            0x54
 22  Y            15                            0x59
 23  U            16                            0x55
 24  I            17                            0x49
 25  O            18                            0x4F
 26  P            19                            0x50
 27  { [          1A     VK_OEM_4               0xDB  
 28  } ]          1B     VK_OEM_6               0xDD
 29  | \          2B     VK_OEM_5               0xDC
 30  Caps Lock    3A     VK_CAPITAL             0x14
 31  A            1E                            0x41
 32  S            1F                            0x53
 33  D            20                            0x44

참고1
https://www.win.tue.nl/~aeb/linux/kbd/scancodes.html

참고2
https://www.experts-exchange.com/articles/2155/Keyboard-Remapping-CAPSLOCK-to-Ctrl-and-Beyond.html