오토핫키 한자키 매핑 - otohaski hanjaki maeping

현재 내가 쓰고 있는 키보드는 '리얼포스101'. 이름에서 부터 알 수 있듯이 이 키보드는 키가 101개..흔히 우리가 즐겨 쓰는 윈도우키, 한자키, 한/영 변환키가 없다. 기본적으로 오른쪽 Alt와 Ctrl이 한자키와 한/영변환 키를 지원한다고 하지만, 나는 오른쪽 Alt와 Ctrl도 쓰는 차가운 도시 남자이므로 103키 설정으로는 키보드를 편하게 사용 할 수가 없어 키를 다시 매핑 해야만 했다.

처음으로 시도한 방법은 AutoHotKey(http://www.autohotkey.com/)라는 키 매핑 프로그램. 간단한 스크립트로 키매핑 뿐만이 아니라 이런저런 단축키들도 설정 할 수 있어 자주쓰는 프로그램들을 Ctrl+F1, F2 이런식으로 등록해 놓으면 상당히 편리한 작업환경을 제공 해 줄 수 있다. 하지만 단점이 키보드 해킹 방지 프로그램 같은 것에 걸려 특정 프로그램을 실행하면 한영 변환이 안되 곤란해 지는 경우가 종종 발생 했다. 특히 게임 같은 경우가 허다한데...게임 도중에 영어로 채팅을 시도하면 초딩들 한테 욕먹기 딱 좋다.

그래서 찾아낸 방법이 레지스트리 직접 변경(두둥)!! 일단 내가 가진 리얼포스101을 어떻게 리매핑 할 것인지 계획을 세워 보자.

윈도우키 : CapsLock으로 대체. 1:1 매핑.
한/영 변환 : Shift+Space bar로 대체. 1:2 매핑.
한자 변환 : Ctrl+Space bar로 대체. 1:2 매핑.

1:1 키 리매핑
키 하나를 이용해 매핑 할 수 있는 경우와 키 조합이 필요한 경우가 있다. 먼저 1:1 매핑이 되는 경우를 해결 하자. 이경우에는 KeyTweak라는 프로그램을 이용하면 간단하게 해결이 가능하다. 아래 프로그램을 실행 하도록 하자. 설치가 필요 한 것이 아니라 딱히 다운로드 없이 바로 실행을 하면 된다.

오토핫키 한자키 매핑 - otohaski hanjaki maeping
KeyTweak.exe

단점 몇가지 있는데 윈도우 2000/XP에서만 실행이 가능하고, 1:1 키매핑만이 된다(어쩌면 AutoHotKey처럼 키 조합을 지원하지만 내가 모르는 것일 수도...). 

1. KeyTweak를 실행하자.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

2. 'Half Teach Mode' 버튼을 클릭하자. 아래와 같은 화면이 나올 것이다.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

3. 'Scan a Single Key'를 클릭하고 바꾸로 싶은 키를 누른다. 그럼 아래 그림 처럼 해당 키의 코드 값이 표시된다. Destination Key 항목에서 원하는 기능의 키를 선택 후 Remap 버튼을 클릭한다.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

4. 키 설정이 끝나고 Remap 버튼을 누르면 아래와 같은 화면이 나온다. Pending Changes를 보면 추가된 항목들이 보일 것이다(해당 예를 작성하는 시점에서는 따로 추가 한 것이 없으므로 아무것도 없다).

오토핫키 한자키 매핑 - otohaski hanjaki maeping

5. 아래의 Apply 버튼을 클릭한다. 그럼 레지스트리 변경사항을 적용하기 위해 컴퓨터를 리부팅 할 것인지 물어온다. Y을 눌러 재부팅 하도록하자.

이로써 'CapsLock'키를 윈도우 키로 변경 하는데 성공했다. 이제는 한자 키와 한영 키를 변환 해보자.

조합키 리매핑
한자키와 한영 변환키는 키조합을 이용하기로 했으므로 KeyTweak로는 할 수가 없다. 그래서 사용하는 방법은..키보드 드라이버를 변경 하는 것이다. 보통 103키 타입 드라이버가 설치 되어 있는데 Shift+Space와  Ctrl+Space를 사용하기 위해 강제적으로 101키 드라이버로 변경하는 방법이다.

1. regedit를 실행 하자(윈도우 키 -> 실행 -> 'regedit'를 타이핑)
2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\i8042prt\Parameters] 를 찾아 가자
3. 아래의 항목에서 파란색으로 되어 있는 부분을 변경 하도록 하자.

"LayerDriver JPN"="kbd101.dll"
"LayerDriver KOR"="KBD101C.DLL"

"OverrideKeyboardIdentifier"="PCAT_101AKEY"
"OverrideKeyboardType"=dword:00000008
"OverrideKeyboardSubtype"=dword:00000005


이상으로 세개의 키에 대한 리매핑작업이 완료 되었다. 레지스트리 변경에 보다 원론적으로 접근 할 수 있는 방법에 대해 알고 싶으신 분들은 아래의 레퍼런스를 참조하면 된다.

Reference
* 키보드 드라이버 변경 : http://vany.tistory.com/entry/Windows-Keyboard-Type3-Setting-with-Registry
* 유틸리티를 이용한 키보드 리매핑 : http://www.yahoworld.com/keybdmap.htm

공유하기

게시글 관리

구독하기HardCore in Programming

저작자표시 비영리 동일조건

제대로 된 키보드라면 당연히 아래 정도의 키 배치 (Ctrl - Win – Alt – SPACE 순)는 보여줘야 하는데 이 놈의 뵨태 키보드는 아이솔레이션 하느라 그랬는 지는 몰라도 정말 중요한 윈도우 키를 과감하게 없애 버리셨다.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

윈도우 7 에서 그 활용도가 무한대로 커지는 윈도우 키는 에어로 스냅이나 Win + D, Win + Home, Win + E 와 같은 끝도 없는 단축키를 제공해 줘서 그 쓰임새가 개똥보다 흔한 키인데 아이솔레이션 방식으로 만들면서 공간이 부족하다 보니 과감하게 제작 시 빼 버렸나 보다.

Type 3 키보드에서는 한자키 대신에 Control + Space 로 한자키를 대신할 수 있기 때문에 나 같은 경우 한자키는 특별히 의미가 없다(한글 키도 역시)

결국, 쓸모 없는 한자키를 포함해서 Alt 키도 용도 변경하기로 맘 먹었다.

  • 한자키 → Alt 키로 변경
  • 왼쪽 Alt 키 → 윈도우 키로 변경

 

이왕 하는 김에 맥북프로를 거의 윈도우용으로만 사용하고 있어서, 맥북 프로 자체의 Option(Alt) 키와 Command 윈도우키) 키도 서로 변경하기로 했다.

  • 맥북프로의 Alt 키 → Window 키로 변경
  • 맥북프로의 Command 키 à Alt 키로 변경

 

인터넷으로 이런 저런 방법을 찾아 보니, "한자키" 를 제외하고는 SharpKeys 나 KeyTweak 이라는 프로그램으로 간단하게 수정가능 하다는 걸 알게 되었다.

 

SharpKeys 라는 프로그램에 대한 소개글은 아래 포스팅 참조
paperinz™ 간단하게 키보드의 키를 변경해주는 포터블용 키 맵핑 프로그램

 

 

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

위 그림은 SharpKeys 라는 프로그램으로 내가 원하는 키를 변경한 후 모습이다.

  • Left Alt → Left Window : 맥북프로와 TGSK-1000U 에서 왼쪽 Alt(Option 키) 를 윈도우 키로 작동하도록 수정.
  • Left Windows → Left Alt : 맥북프로의 Command Key 를 Left Alt 키로 변경

 

 

Add 를 누르면 아래와 같은 키 맵핑 대화상자가 실행 되는데 여기서 원하는 키로 변경하면 되고, 키 값을 모르면 Type Key 를 눌러서 해당 키를 눌러주면 간단하게 원하는 키로 변경이 가능하다.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

 

KeyTweak 라는 프로그램은 UI 적으로 좀 더 나아 보이기도 하지만, 직관적으로 키를 바꾸는 건 SharpKeys 가 더 쉬운 듯.

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

 

위와 같은 키보드 Remap 프로그램들은 단순히 윈도우 레지스트리의 값을 변경해서 키를 조정해 주기 때문에 한 번 설정하면 프로그램을 매번 실행하거나 하는 수고가 없어 간편하게 키를 변경할 수 있고 원하지 않을 경우 해당 레지스트리를 지우기만 하면 되기 때문에 복원도 간편한 셈

 

변경된 키가 저장되는 레지스트리는 다음과 같다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 에 있는 Scancode Map

 

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

 

이제 남은 문제는 한자키를 Left Alt 키로 변경하는 문제인데

 

한자키를 Alt 키로 사용?

 

위 글과 같이 이미 많은 분들이 같은 문제로 고민했지만, 한글과 한자키와 같은 윈도우 IME 처리에 연결된 키들은 위와 같은 Key Remap 프로그램으로 처리가 안된다

실제로 SharpKeys 프로그램으로 한자키를 입력해 보면 아래와 같이 E0_40F1 이라고 나오는데

 

오토핫키 한자키 매핑 - otohaski hanjaki maeping

 

이 키는 정의되지 않아서 변경이 불가능하다고 오류가 난다.

 

 

설사 해당 키를 찾아 수정한다고 해도 한자키는 윈도우 자체에서 워낙 특이하게 처리하기 때문에 다운 클릭은 발생해도, 키보드 업이 발생하지 않는 문제가 있다고 한다. (그래서 키보드 후킹으로도 처리가 힘들다)

 

결국 이런 저런 시도 끝에 찾아낸 마지막 해결 책은

AutoHotKey를 이용한 한영/한자 키 mapping하기 (키보드 매니아 사이트에 올라온 글인데 해당 사이트가 문제가 있는 지 열리지 않아 일단 구글 저장된 페이지로 연결시켰습니다)

 

에 있는 내용이 현재까지로 서는 최선인 듯싶다.

 

SC1F1::

Send, {ALT down}

Sleep, 500

Send, {ALT up}

return

 

AutoHotKey 는 유명한 키보드/마우스 매크로 프로그램.

특정 키가 눌러 질 경우, 내가 원하는 동작으로 보낼 수가 있는데

한자키가 눌러질 경우, 위 스크립트대로 작동할 경우 얼추 Alt 키 처럼(?) 작동하게 할 수 있다.

조금 복잡해 보이지만.

SC1F1::

Send, {ALT down}

Sleep, 500

Send, {ALT up}

return

SC1F1 키(한자키) 가 눌려지면

Alt 다운 이벤트를 발생시키고

500ms 만큼 있다가

Alt 업 이벤트를 발생시킨다.

 

정도의 간단한 스크립트

만드신 분이 이렇게 하신 건, 한자키의 경우 다운 이벤트만 발생하기 때문에 업 이벤트를 인위적으로 강제 발생시키기 위함이라고 한다. (만들어 공유해 주신 분께 감사)

일단 저 스크립트를 확장자 한자.AHK 식으로 저장하고 해당 파일을 AutoHotKey 로 실행 시키면 이제부터 한자키 입력은 자동으로 Alt 키 다운 & 업으로 작동한다.

한가지 큰 문제는 Alt Tab 으로 여러 프로그램을 순차적으로 돌려볼려고 Alt 키를 오래 눌러야 할 상황에서 위 스크립트 덕분에 항상 500ms 이후 Alt Up 이 발생하기 때문에 Alt + Tab 이 해제 되어 버린다.