키 매핑 방법
Windows에서 다양한 키 매핑을 변경하는 방법입니다.
예를 들어,
- 한영키를 shift+space 사용하기
- CapsLock키를 Ctrl로 사용하기
인터넷에서 검색해보면 다 나오는 내용입니다. 대부분의 Windows에서 잘 될것이라고 생각합니다.
키를 변경하기 위해서는 아래 레지스트리를 수정해야 합니다.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
그 위치에 "Scancode Map"키에 이진 값을 입력해야 합니다.
"Scancode Map"=hex:\
00,00,00,00,\
00,00,00,00,\
03,00,00,00,\
1d,00,3a,00,\
3a,00,46,00,\
00,00,00,00
위에서 16진수 4개로된 숫자의 연속이다. 위의 예제에서 총 6개의 숫자로 구성되었다. "00,00,00,00"이 한개의 숫자로 4 바이트로된 정수형이다. 이 값은 리틀 엔디언으로 저장되었다. 예를 들어 "03, 00"은 실제 값은 0x0003으로 숫자로는 3이 된다.
"Scancode Map"에서 각 자리에 숫자마다 의미가 있다. 그 의미는 다음과 같다.
"Scancode Map"=hex:\
00,00,00,00,\ <-- 헤더
00,00,00,00,\ <-- 버전
03,00,00,00,\ <-- 다음에 오는 라인수(3개)
1d,00,3a,00,\ <-- 라인1
3a,00,46,00,\ <-- 라인2
00,00,00,00 <-- 라인3
다음에 오는 라인수 다음에 오는 값에 의해서 키 매핑이 변경이된다. 앞의 예제에서 라인1을 살펴보자.
"1d,00,3a,00"은 0x001d와 0x003a 값으로 되어 있다. 각 값은 키값을 의미하며 앞에서 부터 LeftCtrl 키와 CapsLock키를 의미한다. 이 값의 의미는 Ctrl키를 CapsLock키에 매핑한다는 것이다. 즉, CapsLock키를 누르면 Ctrl키가 입력이된다.
대표적인 키값은 아래와 같다. 더 자세한 키값은 https://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html 를 참조하면 된다.
0x003a - Capslock
0x001d - LCtrl
0x0038 - LWin
0xe038 - RAlt
0xe05c - RWin
0xe05d - Popup
0x0072 - HanEng
0x0071 - Hanja
0x0046 - ScrLk
이런 방법으로 다른 키도 매핑할 수 있다. 중요한 것은 여러 키를 매핑하려면 여러 번 매핑 값을 적용하는 것이 아니라, 매핑 키 값들은 한번에 입력해야한다.
몇가지 매핑 예제를 살펴보겠다. 아래 예제를 한꺼번에 적용하고 싶다면, 하나로 만들어서 적용해야한다. 이것 때문에 앞의 키매핑 구조를 살펴본 것이다.
레지스트리를 변경하고 반드시 재부팅해야 한다.
Ctrl키 매핑 예제
레지스트리 파일:
다음은 Ctrl키를 CapsLock키에 매핑하고 CapsLock키는 ScrLock키로 매핑하는 예제이다. 간혹 CapsLock를 사용할 경우가 있어서 거의 사용하지 않은 ScrLock키로 매핑한 것이다.
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,\
3a,00,46,00,\
00,00,00,00
한영키 매핑 예제1
레지스트리 파일:
한영키 전환을 shift+space을 사용하는 레지스트리 키입니다. 이를 위해서 기존 키보드 드라이버도 수정이 필요하다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"PollingIterations"=dword:00002ee0
"PollingIterationsMaximum"=dword:00002ee0
"ResendIterations"=dword:00000003
"LayerDriver JPN"="kbd101.dll"
"LayerDriver KOR"="kbd101c.dll"
"OverrideKeyboardType"=dword:00000008
"OverrideKeyboardSubtype"=dword:00000005
"OverrideKeyboardIdentifier"="kbd101c.dll"
"KeyboardFailedReset"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
00,00,00,00,\
03,00,00,00,\
72,00,38,E0,\
71,00,1D,E0,\
00,00,00,00
한영키 매핑 예제2
레지스트리 파일:
한영키 전환을 CapsLock 키을 사용하는 레지스트리 키입니다.
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,\
72,00,3A,00,\
00,00,00,00,\
00,00,00,00
매핑키 해제
레지스크리 파일:
이는 앞의 설정했던 키 매핑을 해제하는 예제이다. 이 값을 적용하면 앞의 적용되었던 키매핑을 초기화해준다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-
'4.개발 및 운영 환경' 카테고리의 다른 글
CentOS에서 ELK 설치 및 설정 (0) | 2018.08.12 |
---|---|
[synology] LDAP을 활용한 인증 통합관리 (0) | 2018.03.27 |
vim에서 빌드 환경 구성 (0) | 2014.02.04 |
로컬 네트워크에서 NTP 서버 설정 (0) | 2012.09.07 |
Syntaxhightlighter 2.x 사용하기 (0) | 2012.08.16 |