2016년 6월 2일 목요일

Windows 왼손 마우스 사용을 위한 키보드 매핑조정(오른쪽 '한/영'키 + 오른쪽 Ctrl키 사용)

드디오 올것이 왔습니다.
오른손이 말을 안듣고 마우스를 사용할때마다 아픕니다.
그래서 마우스를 왼손으로 사용해야하는 상황이 되었습니다.

마우스 왼손사용을 하려다 보면 오른쪽의 Ctrl 키를 사용하여야 하는 필요가 생깁니다.
왜냐면 에디터의 편집 단축키가 다음과 같이 사용될 수 있기 때문입니다.
또한 마우스 왼손 조작시에 Ctrl를 같이 조작할 필요가 있을때가 있는데 이때 왼쪽의 Ctrl을 오른손으로 조작하기가 힘듭니다.

복사(Copy) : Ctrl+C, Ctrl+Insert
붙여넣기(Paste) : Ctrl+V, Shift+Insert
잘라내기(Cut) :  Ctrl+X, Shift+Delete

단축키의 Shift는 오른쪽 Shift키를 쓰면됩니다. 대부분 마우스에서 오른쪽 Shift키의 크기는 상당히 크게되어 있습니다.
그러나 오른쪽 Ctrl키는 대체로 '한자'키에 매핑되어 있습니다.

'한자'키로 사용되는 오른쪽 Ctrl의 기능을 되돌리는 방법은 두가지 입니다.
1. 키보드 드라이버를 바꿔서 오른쪽 Ctrl키를 '한자'키로 사용하지 않는 설정(USB Type3)으로 바꾼다.
2. 키보드 리매핑을 하여 오른쪽 Ctrl키의 매핑을 왼쪽 Ctrl 키로 매핑한다.

1,2번 모두 Windows 레지스트리를 변경하는 작업으로 합니다.
또한 노트북에 키보드를 붙여 쓰는 경우에 노트북 내장 키보드와 추가로 장착한 USB키보드모두 적용됩니다.
또한 공용으로 사용하는 컴퓨터라면 기존의 키보드 매핑을 바꾸는것은 사용자간에 동의가 있어야 할 것입니다.

1번을 적용할 경우 '한/영'은 Shift+Space, '한자'는 Ctrl+Space로 매핑이 바뀝니다.
그래서 오른쪽 Ctrl키를 본래의 기능대로 사용할 수 있게 됩니다.
그러나 이게 좀 불편할 수 있습니다. 과거에 아래아 한글을 쓰던 사람은 쉽게 적응이 되지만 습관적으로 스페이스바 옆에 있는 ALT키를 '한/영'키로 쓰던 사람에게는 재앙이 됩니다.
또한 노트북에 키보드를 붙여서 사용하는 사용자의 경우에는 노트북의 '한/영'버튼이 ALT키로 되므로 좀 불편할 수도 있습니다.
일부 노트북에서는 오른쪽 ALT외에 '한/영'버튼이 있는 경우에는 큰 문제가 안될것입니다.

1번으로 적용할 경우 또하나의 문제는 VMware를 쓸때 게스트에서는 매핑이 되지 않아서 게스트 컴퓨터에서는 계속 오른쪽 Ctrl키가 '한자'키로 계속 남아 있다는 것입니다.
게스트 컴퓨터의 매핑도 바꿔줘야 합니다.

2번으로 적용하면 '한자'키의 사용이 왼쪽 Ctrl로 바뀝니다.
VMware 게스트의 매핑문제는 생기지 않고 VMware 게스트에서도 '한자'키가 오른쪽 Ctrl키 매핑이 바뀌어서 적용됩니다.
다만 '한자'키를 사용할 수 없는 단점이 생깁니다. 따라서 2번으로 적용할때는 사용빈도가 낮은 다른 키의 매핑을 '한자'로 추가해줘야 합니다. '한자'키 사용빈도가 높은 사람은 적용하기 힘듭니다.

단점이 있기는 하지만 오른쪽 Ctrl만 본래 기능으로 돌리는 작업을 보여 드리겠습니다.

결과는 오른쪽 ALT는 '한/영'으로 계속사용하고 오른쪽 Ctrl만 '한자'에서 Ctrl의 본래 기능으로 되돌립니다.
우선 오른쪽 ALT를 '한/영'으로 사용하는 키보드 드라이버를 적용합니다.
관리자 권한의 명령창에서는 아래를 차례로 입력하면 됩니다.

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v "LayerDriver KOR" /t REG_SZ /d "kbd101a.dll" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v "OverrideKeyboardIdentifier" /t REG_SZ /d "PCAT_101AKEY" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v "OverrideKeyboardType" /t REG_DWORD /d "8" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters" /v "OverrideKeyboardSubtype" /t REG_DWORD /d "3" /f

만일 이미 "한글 101키 USB Type1"을 사용하고 있는 중이라면 이 과정은 할 필요가 없습니다.
Windows 10이라면 아래와 같이 되어 있으면 됩니다.
XP및 Win7,8에서는 약간 다르겠지만 아마 특별히 손대지 않았다면 "한글 101키 USB Type1"을 사용하고 계실것입니다.


"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters"

이제 키 매핑을 바꿉니다.
다음 오른쪽 Ctrl을 왼쪽 Ctrl로 매핑합니다.
이 명령을 실행하려면 관리자 권한의 콘솔에서 해야합니다.

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d "0000000000000000020000001D001DE000000000" /f

매핑의 의미는 오른쪽 Ctrl키(E01D)를 왼쪽 Ctrl(001D)로 매핑하는것입니다.

"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map" 레지스트리 키는 본래 존재 하지 않습니다.
위 명령을 사용하면 추가 됩니다.

매핑을 취소하여 원위치 하려면 다음과 같이 합니다.
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /f

매핑된 내용을 보려면 다음과 같이 합니다.
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map"

이러한 일을 좀더 쉽게하는 KeyTweak이라는 프로그램이 있는데

프로그램 실행창은 아래와 같이 생겼습니다.
프로그램 메인 창의 "Show Me The Raw Map"버튼을 누르면 매핑의 자세한 내용이 설명되어 나옵니다.
앞에서 등록한 레지스트리를 등록한 상태로 보면 아래와 같이 보입니다.

이 프로그램을 사용하셔도 편리하게 같은 일을 할 수 있습니다.