시작 전, 알아두면 조금 편해지는 내용
- 미국 표준 키보드는 101개의 키로 구성됩니다.
- 한국어 표준 키보드는 103개의 키로 구성됩니다. (US 표준 + 한/영, 한자)
- 일본어 표준 키보드는 106개의 키로 구성됩니다. (US 표준 + 가나, 무변환, 변환, む, ろ)
일본어 109키 키보드. 이미지 출처 : http://wp.me/p4CwN8-2G
- 위 레이아웃에 윈도우용 키 3개(Win(L), Win(R), 팝업키)가 추가되어 미국 104키, 한국어 106키, 일본어 109키가 됩니다.
- 따라서 미국 101/104키는 같은 키보드이며, 한국어 103/106키, 일본어 106/109키도 같은 키보드입니다.
Latin 계열이나 Cyrillic 계열 문자와 달리, CJK 계열의 한자문화권 언어는 글자수가 많기 때문에, Input Method Editor (IME)라는
작은 프로그램을 경유하여 문자를 입력하게 됩니다.
이 때 키보드상의 특수키 지원은 윈도우 레지스트리에 등록된 키보드 드라이버가 제어하게 됩니다.
한국어 및 일본어 IME를 모두 설치하여 사용하려는 경우, 키보드 layout에 따라 적절히 드라이버를 강제 지정해 줘야 합니다.
이 부분의 레지스트리 구성이 hidden api인 탓에 설정이 좀 많이 지저분합니다.
해당 키는 HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters 에 기록되며, 다음 값들의 쌍으로 제어됩니다.
설정값은 사용하려는 키보드의 종류에 따라 고정되며, 거의 대부분은 한/영, 한자키 매핑만 고민하면 됩니다.
레지스트리 수정은 언제나 시스템 불안정을 초래할 위험성이 있습니다. 조심하여 작업하시기 바랍니다.
설정값 예시는 글 끝에 있습니다.
LayerDriver JPN
키보드와 일본어 IME 사이에서 상호작용을 제어합니다. 사용가능한 드라이버는 다음과 같습니다.
kbd101.dll
일본어 101/104키 호환 드라이버입니다. 한국어 103/106키를 사용하는 경우에도 이 드라이버를 사용합니다.
Alt + ` 키로 IME 변환 / 영어 바로입력을 전환하며, 일본어는 IME에서 로마자 입력으로 입력합니다.
F6 ~ F10 키로 히라가나, 전/반각 가타카나, 전/반각 영숫자로 변환할 수 있습니다.
kbd106.dll
일본어 106/109키 드라이버입니다.
히라가나/가타카나 키로 히라가나/가타카나/영어 입력을, ` 키로 반각/전각 입력을 상호 변경하며, CapsLock 키로 IME변환/영어
바로입력을 전환합니다. 변환 키는 IME 한자변환후보 확정, 무변환 키는 IME 한자변환을 취소하고 입력대로 확정시킵니다.
키 매핑도 일본 표준으로 바뀌기 때문에, QWERTY 쓰는 입장에서는 입력이 정말 불편해 집니다.
사실 일본에서도 젊은 층 위주로 101/104키 사용자가 계속 늘어나고 있고, 106/109키 사용자는 점점 줄어들고 있다고 합니다.
그 외에도 일본어 AX 105키 드라이버(kbdax2.dll)도 있습니다만, 현재는 완전 단종되어 유물이 되었다고 합니다.
LayerDriver KOR
키보드와 한국어 IME 사이에서 상호작용을 제어합니다. 사용가능한 드라이버는 다음과 같습니다.
kbd101a.dll / kbd101b.dll / kbd101c.dll
한국어 101/104키 호환 드라이버입니다. 일본어 106/109키 및 한/영, 한자키가 없는 노트북 키보드도 이 드라이버를 사용합니다.
A타입은 우측Alt로 한/영, 우측Ctrl로 한자키를 대체하며, B타입은 우측Ctrl로 한/영, 우측Alt로 한자키를 대체합니다.
C타입은 Shift+Space로 한/영, Ctrl+Space로 한자키를 대체합니다. 예전의 한/글워드프로세서에서 사용하던 방식입니다.
세 타입 모두 Alt+=로 영숫자 반각/전각 전환이 가능합니다. 한글은 전각뿐이 없으므로 의미 없습니다.
kbd103.dll
한국어 103/106키 드라이버입니다.
일본과 달리 한국은 한국어 103/106키가 거의 표준으로 판매되고 있으므로, 대부분의 경우 이 드라이버를 사용하면 됩니다.
한/영, 한자키가 활성화되며 우측 Alt, Ctrl키는 본연의 기능을 수행합니다.
또한 Alt+=로 영숫자 반각/전각 전환이 가능합니다. 한글은 전각뿐이 없으므로 의미 없습니다.
OverrideKeyboardType
사용중인 키보드 하드웨어의 종류에 맞게 값을 지정해 줍니다. 구체적인 효과는 알려지지 않았습니다.
- 0 = 기본값
- 2 = 향상된 101키 또는 호환모드 (미국)
- 4 = 향상된 102키 또는 호환모드 (유럽, 남미권 등 엔터키 ㄱ자 키보드)
- 7 = 일본어 106/109키보드
- 8 = 한국어 103/106키보드
OverrideKeyboardSubtype
사용중인 키보드 하드웨어의 세부 종류에 맞게 값을 지정해 줍니다. OEM-Specific Table이며 구체적인 효과는 알려지지 않았습니다.
- 0 = 일본어 101/104키 호환모드
- 1 = 일본어 AX키보드
- 2 = 일본어 106/109키
- 3 = 한국어 101/104키 호환모드 A
- 4 = 한국어 101/104키 호환모드 B
- 5 = 한국어 101/104키 호환모드 C
- 6 = 한국어 103/106키
OverrideKeyboardIdentifier
사용중인 키보드의 하드웨어의 종류에 맞게 구분자를 입력해 줍니다.
근데 저도 이 값은 C타입으로 되어 있는데 실제 사용형태는 레이어 드라이버 따라서 A타입 따라갑니다. 참고만 하세요.
일본어 키보드의 경우,
- PCAT_101KEY
- PCAT_106KEY
- AX_105KEY
한국어 키보드의 경우,
- PCAT_101AKEY
- PCAT_101BKEY
- PCAT_101CKEY
- PCAT_103KEY
키보드 종류에 따른 값 설정
사용하려는 키보드가 한국어 103/106키 및 그 변형인 경우
- LayerDriver JPN = kbd101.dll
- LayerDriver KOR = kbd103.dll
- OverrideKeyboardType = 8
- OverrideKeyboardSubtype = 6
- OverrideKeyboardIdentifier = PCAT_103KEY
사용하려는 키보드가 일본어 106/109키 및 그 변형인 경우
- LayerDriver JPN = kbd106.dll
- LayerDriver KOR = kbd101a.dll
- (사용하려는 한국어 호환모드에 따라 적절히 변경)
- OverrideKeyboardType = 7
- OverrideKeyboardSubtype = 2
- OverrideKeyboardIdentifier = PCAT_106KEY
사용하려는 키보드가 미국 101/104키 또는 그 변형 등 다른 키보드인 경우
- LayerDriver JPN = kbd101.dll
- LayerDriver KOR = kbd101a.dll
- (사용하려는 한국어 호환모드에 따라 적절히 변경)
- OverrideKeyboardType = 2
- OverrideKeyboardSubtype = 0
- OverrideKeyboardIdentifier = PCAT_101AKEY
- (사용하려는 한국어 호환모드에 따라 적절히 변경)
아무생각없이 윈도우깔다가 한영키 안되서 바꾸게 되는 바로 그 ㅡ 레지스트리 ㅠㅠ