Windows 키 맵핑 바꾸기

rein이 회사/원룸에서 사용하는 키보드는 Real force 101 key 다.

가격이 살짝(?) 비싸긴 했지만, 키를 누르는 느낌이 매우매우매우 만족스럽기 때문에, 가격에 구애받지 않고 잘 쓰고 있다.
사실 회사에서만 쓸려고 하나 샀다가 원룸 키보드만 누르면 스트레스를 받아서 하나 더 질렀다.

문제는 101키이기 때문에 흔히 쓰는(?) 한/영 전환 키와 윈도우즈 키가 존재하지 않는다.
한영키는 원래 잘 안 쓰고(shift+space 애용) 있어서 크게 문제가 안되었지만, 윈도우즈 키는 Win + R, Win + E를 꽤 쓰기 때문에 좀 불편해졌다. 그래서 찾은 방법이 registry에 등록된 키보드 Scancode map을 수정하는 것.

HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout 에 새로운 문자열 값 Scancode Map (binary data)를 추가하고,

00 00 00 00 00 00 00 00
02 00 00 00 5B E0 3A 00
00 00 00 00

를 데이터로 써준다. (little endian 임에 주의)

처음 8바이트는 헤더 버젼과 플래그인데 각각 0이고(…), 마지막 4바이트는 널 맵핑(일종의 패딩 역할)이다. 8~11번째 바이트(0부터 세서)부분이 바뀌는 키의 수다(널맵핑 포함한 맵핑 수; Capslock->Winodws key만 했으니 2개가 됨).
그리고 그 다음 4바이트에서 Caps lock을 Windows key로 덮어 쓴 내용이다.
(Capslock이 00 3A, 왼쪽 윈도우즈 키가 E0 5B 임)

이렇게 해서 윈도우즈 키를 캡스락에 덮어쓰는게 완료[…]


이외에도 다른 키코드들을 맵핑해서 변경하는게 가능하다(실제 키코드는 http://www.microsoft.com/whdc/device/input/Scancode.mspx 의 Scancode spec.을 읽어보자)

레지스트리를 변경하는 스크린 샷

scancode

ps. HKLM은 HKEY_LOCAL_MACHINE 임 (이쪽이 더 익숙해서 약어라는걸 잊고있었음(…))

 

Update: 2009-11-18

CapsLock 을 Ctrl 로(이건 HHK2 따라하기?), Ctrl 을 윈도우즈 키로 바꿔서 쓰기 시작했다.

00 00 00 00  00 00 00 00

03 00 00 00   5B E0 1D 00

1D 00 3A 00   00 00 00 00

으로 사용 개시. 03 00 00 00 이 후의 두 개의 32 byte word (Win32 용어론 DWORD) 가 CapsLock->Ctrl, Ctrl->Windows Key 에 해당한다.

ps. 적절히 빼놓고 썼는데, ctrl, Windows key 모두 왼쪽에 있는 녀석만을 지칭한다.

Author: rein

나는 ...

4 thoughts on “Windows 키 맵핑 바꾸기”

  1. 그 뭐랄까 쓰던게 계속 쓰고싶은데 물리적으로 막혀있다면, 별 꼼수가 다 나온다 정도의 느낌이었음[…]

  2. 저도 윈도우즈+d, r 같은 걸 많이 쓰기 때문에 그게 없으면 불편하더라고요.
    그렇다고 캡스락에 매핑하시다니.. 캡스락 없으면 야겜(MVP baseball 2005) 못하는데 ㅠㅠ
    이래저래 저는 좋은 키보드는 꿈도 못 꿀 운명이네요 [?]

Leave a Reply