CapsLock 키를 Ctrl 키로 전환하기 본격 장려 포스팅

불법점거 CapsLock

Ctrl+CCtrl+V는 현대 IT 문명의 발전에 바퀴의 발명에 버금가는 정도의 기여를 하지 않았나 싶습니다. Ctrl키의 지분을 생각한다면 '키보드 구석'이란 수식어는 Ctrl 키에게 어울리지 않죠.

 

옳은 방법으로 타이핑의 기본은 엄지를 제외한 손가락을 `home row` 에 올려놓는 것을 기본으로 합니다. 이 타이핑 방법은 이름도 가지고 있는데 'touch typing'이라고 합니다. 문제는, 이 상태에서 Ctrl 키를 누르려는 순간 발생합니다. 왼손의 검지가 f 키에 머무른 상태에서, Ctrl 키를 누르기 위해 새끼손가락을 Ctrl키에 가져갑니다. 그리고 (평소에는 신경도 쓰지 않았던) 새끼손가락 주변의 근육들에게 주의를 집중해보세요. 그들의 비명소리가 들리지 않나요? 😱

키보드를-타건하는-손
세끼손가락(pinky)으로 Ctrl Key 를 누를 때와 CapsLock Key 를 누를 때의 차이

자 이제 CapsLock 키를 바라봅시다. CapsLock키가 Ctrl키라고 상상해보세요. 다시, 방금처럼 f 키에 검지를 올려놓은채로, CapsLock에 새끼손가락을 올려봅시다. 어떤가요? 그리고, CapsLock 키가 Ctrl이라고 생각하고 우리가 자주 사용하는 Ctrl + CCtrl + V 조합키를 눌러보는거죠. 다시, 원래 Ctrl을 활용한 복사, 붙여넣기 동작과 비교해봅시다. 편안함이 느껴지시나요?

 

맞습니다. 그 자리는 CapsLock 의 자리가 아니었어야 했어요. 내 마음속의 hero Ctrl 키의 자리였어야 했던거죠.

Ctrl 의 지원군

사실, CapsLock 의 위치를 Ctrl 로 바꿀 수 있도록, 많은 기기에서 지원하고 있습니다. OsX 의 경우, CapsLock Key 가 Ctrl 의 역할을 할 수 있도록 옵션을 제공하고 있죠.

MacOS-키보드-옵션-보조키-변경-스크린샷
MacOS 의 키보드 옵션에서는 보조키의 역할을 커스터마이징할 수 있다.

또한, 일부 키보드는 CapsLock 의 자리에 위치한 키의 동작을 물리적으로 제어할 수 있는 물리 스위치가 달려있는 경우도 있습니다. 보통 `dip switch`와 함께 구현되어있는데요, 대표적으로 레오폴드사의 경우를 보면, CapsLock 과 Ctrl 의 기능을 물리적으로 변경할 수 있다고 합니다.

레오폴드-키보드-키변경-인스트럭션
leopold 상품 설명, 키보드에 달려있는 dip 스위치를 통해 CapsLock과 Ctrl 의 기능을 변경할 수 있다.

심지어 해피해킹 키보드는 심지어 Control 이라는 풀네임으로 '그 위치'를 당당히 차지하고 있습니다.

최소한의-키배열-해피해킹-키보드
해피해킹의 키보드배열. Control 은 여기서나마 약자의 설움을 떨치고 풀네임의 영광(?)을 되찾았다.

Windows10 에서 CapsLock 키와 Ctrl 키의 위치 바꾸기

서론이 길었습니다. 공식적으로 CapsLock 과 Ctrl 을 변경할 수 있는 또는 변경된 제품들이 존재하지만, 아직 Windows 에서는 조금은 복잡한 방법으로 키맵핑을 해주어야 합니다. 본격적으로 CapsLock 키와 Ctrl 키를 바꾸는 방법에 대해서 알아봅니다.

 

글의 하단에 Capslock 을 Ctrl 키로 변경하는 윈도우 레지스트리 파일을 이용하여 바로 적용할 수 있습니다.

 

다음 글을 참고하여 작성하였습니다.

Keyboard Remapping: CAPSLOCK to Ctrl and Beyond

 

Keyboard Remapping: CAPSLOCK to Ctrl and Beyond | Experts Exchange

Learn more about Keyboard Remapping: CAPSLOCK to Ctrl and Beyond from the expert community at Experts Exchange

www.experts-exchange.com

일러두기 - Scan Code

먼저 `Scan Code`라는 개념에 대해서 알고 가면 도움이 됩니다. Scan Code 란, 대부분의 키보드가 컴퓨터에게 보내는 숫자로서(코드), 특정 키가 눌렸을 때, 키보드에서 컴퓨터로 전송되는 데이터를 의미합니다. 가령 사용자가 Enter 키를 입력하면 키보드에서 컴퓨터로 1C라는 데이터가 전송됩니다.

개요

  1. Registry Editor 열기 (`Window` + `E` 에서 `regedit`)
  2. 아래 경로로 찾아가기
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
  3. Binary Value 생성 후 레지스트리 이름 `Scancode Map` 으로 변경
  4. 레지스트리 더블클릭 후 아래 값을 입력후 확인
    00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00
  5. 운영체제 재시작

상세과정

Registry Editor 열기

Windows Registry 를 Window + E 키를 눌러 Run 창을 열어준 뒤 regedit을 입력합니다.

윈도우-레지스트리-편집기-열기-스크린샷
`Window` + `E`, regedit 실행하기
윈도우-레지스트리-편집기
Windows Registry Editor

레지스트리 등록 위치 찾기

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

위 경로를 아래 스크린샷과 같이 경로부분에 붙여넣어줍니다.

(직접 Registry Editor 창의 왼쪽 경로 Explorer 에서 직접 찾아들어갈 수도 있습니다.)

윈도우-레지스트리-편집기-경로탐색
Keyboard Layout 경로 찾아가기

Scancode Map 레지스트리 생성

`Keyboard Layout` 폴더가 선택되어 있는 생태에서 오른쪽 빈 화면에서 마우스 우클릭 - 새로 만들기(New) - 이진값(Binary Value) 를 선택합니다.

윈도우-레지스트리-편집기-새로운-설정-생성하기
새 Binary Value 생성하기

키값 맵핑을 위한 이진값 입력하기

00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00

위 값을 차례로 아래 스크린샷과 같이 입력해줍니다.

윈도우-레지스트리-편집기-스캔코드-맵-입력
00 00 00 00 00 00 00 00 02 00 00 00 1D 00 3A 00 00 00 00 00, 이 숫자들이 CapsLock 키를 Ctrl 로 사용하겠다는 의미를 담고 있다.

운영체제 재시작

설정을 마무리한 뒤, 운영체제(Windows)를 재시작합니다.

원리

Keyboard Remapping: CAPSLOCK to Ctrl and Beyond글을 다시 참고하게 되면, 다음과 같은 설명을 확인할 수 있습니다.

The hex data is in five groups of four bytes:
00,00,00,00 -- header version (always 00000000)
00,00,00,00 -- header flags (always 00000000)
02,00,00,00 -- number of entries (including terminating NULL)
1d,00,3a,00 -- map entry:desired scancode, key to remap
00,00,00,00 -- NULL terminator

00 00 00 00 00 00 00 00 02 00 00 00 1D 00 3A 00 00 00 00 00

빨강색주황색 숫자는 header 정보로서, 코드의 시작을 의미합니다. 'always 00000000'이라고 표현되어있는 것을 보니, 특별한 의미를 갖지 않고, 초반에는 무조건 0이 총 16개가 들어가는 것 같습니다.

 

초록색 숫자는 number of entries 입니다. 2개이기 때문에, 뒤에 올 4byte 수가 총 2개임(4개의 짝 x 2개)을 의미합니다. 마치 UTF-8 인코딩방식처럼, 다음에 올 숫자의 개수가 몇개인지 컴퓨터에게 미리 알리는거죠.

(숫자 묶음 1개[ex - 3A]는 1byte 즉, 16진수 수 2개(3A)를 의미합니다.)

 

파랑색 숫자가 제일 중요합니다. 바로 이 부분이 키를 맵핑하는 부분입니다. 여기서 1D3A가 ScanCode 입니다. 1D는 왼쪽-Ctrl 을 의미하며 3A는 CapsLock 을 의미합니다. 1D 00 3A 00는 곧 "1D(Left-Ctrl)를 3A(CapsLock)에 할당한다"는 의미가 됩니다.

 

보라색 숫자는 끝을 의미합니다. 마치, 문장의 마침표같은 역할을 하는것이죠. NULL terminator 라고 부르나봅니다.

 

커스텀 키맵핑

보너스(?)입니다😱. 키보드의 각 키들의 Scan Code 를 알면, 이제 우리가 키보드의 특정 키의 스캔코드를 다른 키의 스캔코드로 바꿀 수 있습니다. 저는 CpasLock 을 Ctrl 로 바꾸었기 때문에, CapsLock 을 다시 할당하고싶었습니다. CapsLock 보다 더욱 쓰이지 않는 키를 찾습니다. Scroll Lock 을 CapsLock 으로 바꾸기로 합니다.

ScanCode 검색

Scroll Lock 의 Scan Code 를 알아내기 위해 검색을 합니다. 다음 링크 중 하나를 확인하면 각 키의 ScanCode 를 확인할 수 있습니다. (Keyboard Remapping: CAPSLOCK to Ctrl and Beyond 여기서도 확인할 수 있습니다.)

KeyMapping 코드 생성

ScrollLock 의 ScanCode 는 46입니다. 따라서, CapsLock 의 역할을 Scroll Lock 에 할당하기 위해서 필요한 코드는 다음과 같습니다.

3A 00 46 00

이제 우리는 저 코드의 의미를 알 수 있죠.

레지스트리 편집

레지스트리 편집기에서 Scancode Map 레지스트리를 다시 편집합니다.

새로운 키맵핑 코드(3A 00 46 00, 스크린샷 3번)를 이전의 Ctrl-CapsLock 키맵핑(1D 00 3A 00, 스크린샷 2번) 다음에 추가해줍니다. 그리고, 이제 레지스트리에 입력된 블럭은 이전 2개에서 3개로 늘어났으니 스크린샷의 1번과 같이 숫자를 조정해줍니다.(Null을 의미하는 맨 마지막의 00 00 00 00 도 포함되기때문에 3개입니다.)

윈도우-레지스트리-편집기-키코드-입력하기
3A 00 46 00, 키맵핑을 추가하였다. 이는 ScrollLock의 기능을 CapsLock으로 바꾼다는 의미이다.

쓸모없는 키의 Scan Code

보통 쓸모없는 키라고 알려진 키의 Scan Code입니다. 이 코드를 활용해보는 것도 좋겠죠.

  • Caps Lock - 3a
  • Num Lock - 45
  • Scroll Lock - 46
  • R-Alt - e0,38
  • R-Ctrl - e0,1d

🚨 `e0,38` 과 `e0,1d` 는 레지스트리에 입력할 때에는 순서를 바꾸어 입력(38, e0 처럼)해야하는 것 같습니다. 엔디언 문제로, 글의 맨 아래 `참조`을 참고해주세요. 덧붙여, e0 는 escaping 을 의미합니다.

Ctrl 의 위치가 바뀌는 그날까지

사실, 이렇게 사용하다보면 단점이 하나 있습니다. 제 컴퓨터에서는 매우 편하게 Ctrl 키를 사용할 수 있지만, 다른 사람의 컴퓨터에 가서 타이핑을 하면, 자꾸 Ctrl 을 사용하게 되는것이죠. 다른 사람의 컴퓨터에서도 CapsLock 키를 Control 키로 사용할 수 있는 날을 기대하면서 글을 작성해보았습니다.

아직 망설이고 계신다면, 여러분의 손가락 및 손목 건강을 위해서 CapsLock 을 Ctrl 로 바꿔보세요. 응원합니다.😁

부록 - 레지스트리

CapsLock to Ctrl 레지스트리 자동 설정 파일 만들기

메모장에 다음과 같은 내용을 입력합니다.

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,02,00,00,00,1d,00,3a,00,00,00,00,00

위 내용을 입력한 뒤 저장을 하고, 파일 확장자를 `reg`로 변경해줍니다. 그러면 해당 파일의 아이콘이 다음 스크린샷과 같이 바뀐 것을 확인할 수 있습니다. 그 뒤, 파일을 실행시키면, 레지스트리가 변경됩니다.

키보드-배열-변경-파일-리스트
텍스트파일을 생성하고 확장자를 reg 로 변경하면 운영체제는 해당 파일을 registry 파일로 인식한다.

아래 파일첨부 부분에서 다운로드 받은 파일을 메모장으로 열면 그 내용을 확인할 수 있습니다. 

CapsLock to Ctrl 레지스트리 파일 다운로드

CapsLock 을 Control 키로 바꾸기

CapsLockToControl.reg
0.00MB

CapsLock 을 Control 키로 바꾸고, ScrollLock 을 CapsLock 키로 바꾸기

CapsLockToControlAndScrollLockToCapsLock.reg
0.00MB

Scan Code 키맵핑 내용 초기화하기

ResetScanCodeMap.reg
0.00MB

참조(업데이트)

참조1

키보드의 설정 바꾸기 #1 Registry Scancode Map 수정 Shift+Space 한영전환 Capslock2Ctrl

반응형

Designed by JB FACTORY