키보드 추천 세팅

CapsLock키를 1000% 활용하는 방법

키보드 추천 세팅
Photo by William Warby / Unsplash

여러분은 CapsLock키를 알고 계십니까? 알고 있다면 얼마나 많이, 유용하게 쓰시나요?

저는 이 키를 (원래의 용도로는) 거의 사용하지 않습니다. 아마 어떤 분들은 이 커다란 키가 어디에 쓰는 키인지도 모르는 분들도 계실 수도 있습니다. 이 키에 대해 그간 가졌던 불만은 그 쓰임새가 별로 신통치 않은 것 치고는 너무 좋은 자리에 위치하고 있다는 점입니다. 이렇게 낭비되는 키를 더 잘 쓰는 방법이 없을까요?

애플에서도 이런 생각을 했었는지, 한/영 전환 기능을 CapsLock키에 추가했습니다. CapsLock키를 짧게 누르면 한/영 전환으로, 조금 길게 누르면 대문자 고정으로 작동하게 한 것이죠. 사실 이 부분은 시간 타이밍을 절묘하게 조정할 수 있어야 하는데요, AHK(오토핫키)로도 구현은 할 수 있는데, 단일 시간 값으로 구분해보니 생각보다 자연스럽지 않았습니다.

그래서 아예 새로운 모디키(*)로서 CapsLock을 사용해보자라는 생각이 들었고, 이를 시행하기 시작했습니다. 지금부터 소개하는 설정은 대부분 제가 사용하는 컴퓨터에 적용돼있습니다.

준비물

우선 준비물은 다음과 같습니다.

  1. AutoHotKey V2 : 매크로나 단축키를 만들 수 있는 유용한 프로그램입니다. 무료로 공개되어 있습니다. V1/V2가 스크립트 문법이 완전히 다릅니다. 제 글에서는 V2 기준입니다.
  2. SharpKeys : 윈도에서는 레지스트리를 변경해서 특정한 키를 다른 키로 맵핑하는 방법이 있습니다. 이 프로그램은 그러한 키 맵핑을 간단하게 할 수 있도록 도와주는 도구입니다. (키 맵핑 변경을 복구해주는 기능도 있습니다.)

SharpKeys의 경우에는 윈도용 패키지 관리자인 scoop을 통해서 쉽게 설치할 수 있습니다.

AutoHotkey v2

AutoHotkey V2

Releases · randyrants/sharpkeys
SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. - randyrants/sharpkeys

CapsLock → F15

가장 먼저 할 일은 CapsLock키를 다른 어떤(?)키로 변경해서, 눌러도 인식이 되지 않도록 하는 것입니다. 개인적으로는 실수로 눌려진 상태로 있는 것도 불편해서, 단독으로 누르더라도 인식될 일이 없는 키로 F15키를 정했습니다. 이 키를 가지고 있는 키보드가 있는 경우도 있습니다(!). 어쨌든 스캔코드는 정의되어 있으니, 이 키를 쓰겠습니다.

Sharpkeys 를 실행하고 [add] 버튼을 눌러, 새로운 키 맵을 설정합니다. 왼쪽의 키를 오른쪽의 키로 바꾸는 것입니다. 아래 그림처럼 Caplock 키를 F15키로 바꿔줍니다.

키를 바꾼 후에는 꼭 [레지스트리에 쓰기] 버튼을 눌러야 합니다. 그리고 이 맵핑은 로그인 시점에만 불러오기 때문에, 적용을 위해서는 재부팅을 하거나 로그오프 후에 다시 로그온을 해야합니다.

다시 윈도로 돌아오게 되면 더 이상 CapsLock키가 작동하지 않게 됩니다.

새로운 키 조합 만들기

이제 AHK를 사용해서 새로운 키 조합을 만드려고 합니다. 마치 기계식 키보드의 fn 키처럼 확장하고 싶은 기능이 몇 가지 있습니다. 왼손은 F15를 누르고 있어야 하니, 주로 오른쪽에 있는 키들로 사용하는 것이 좋겠죠.

  1. h, j, k, l 로 ←, ↓,↑,→ 으로 이동하기 (vim style! ⌨️)
  2. spacebar로 한/영 전환하기
  3. enter로 한자 키 입력
  4. 상/하 키를 페이지 업/다운으로
  5. 좌/우 키를 Home/End로
  6. [, ] 키를 Home/End로
  7. 일반 키로 입력할 수 없는 특수문자 넣기 : ·, •, ÷, ×, ∴

이렇게 몇 가지 키 조합을 정의했으면 아래와 같이 ahk 파일을 만들고, 특정한 장소에 저장합니다.

; Filename: MyHotkey.ahk

F15 & h::Send("{Left}")
F15 & j::Send("{Down}")
F15 & l::Send("{Right}")
F15 & k::Send("{Up}")
F15 & i::Send("{Pgup}")
F15 & o::Send("{Pgdn}")
F15 & ,::Send("·")
F15 & .::Send("∙")
F15 & `;::Send("∴")
F15 & 8::Send("×")
F15 & /::Send("÷")
F15 & [::Send("{Home}")
F15 & ]::Send("{End}")
F15 & Space::Send("{SC1F2}")
F15 & Enter::Send("{SC1F1}")
F15 & Backspace::Send("{Del}")
F15 & Del::Send("{Backspace}")
F15 & Up::Send("{Pgup}")
F15 & Down::Send("{Pgdn}")
F15 & Left::Send("{Home}")
F15 & Right::Send("{End}")

자동실행 등록

스크립트 파일이 윈도 시작 시 같이 실행되도록 하려면 '시작 프로그램' 폴더에 등록하면 됩니다.

  1. "Win + R" 키를 눌러 프로그램 실행 창을 엽니다.
  2. "shell:startup"이라고 입력하고 엔터키를 누르면 시작 프로그램 폴더가 열립니다.
  3. 다른 탐색기 창에서 스크립트 파일이 있는 폴더를 열고, alt 키를 누른 상태에서 파일을 드래그하여 시작 프로그램 폴더로 가져오면, 바로가기가 시작 프로그램 폴더에 설치됩니다.

커스텀 조합키

Hotkeys - Definition & Usage | AutoHotkey v2
Learn details about hotkeys in general, modifier symbols, context-sensitive hotkeys, custom combinations, mouse wheel hotkeys, function hotkeys, etc.

이 팁은 오토핫키의 '커스텀 조합키' 기능을 이용해서 구현합니다. 커스텀 조합키에서 primary로 지정된 키는 원래의 기능을 잃게 되지만, F15::Send("{F15}") 와 같이 본래 키의 기능을 릴리즈하는 핫키를 추가로 설정할 수는 있습니다.

단점 및 한계

오토핫키를 사용하여 단축키를 조합했을 때, 실행 중인 오토핫키 클라이언트가 관리자 권한으로 실행 중이 아니라면, 관리자 권한으로 실행되는 앱에서는 (키 이벤트 처리를 가로챌 수 없으므로) 작동하지 않습니다.

또한 커스텀 조합키는 Shift, Ctrl과 같은 다른 모디키와는 결합되지 않아서, "Shift + capslock + H" 조합으로 커서 왼쪽의 텍스트를 선택하는 게 되지 않습니다. 사실 개인적으로 가장 아쉬운 부분이 이 지점인데, ahk에서 기능 개선이 가능할지 기다려봐야겠습니다.

어쨌든 이렇게 capslock이라는 너무 좋은 자리에 있는 키를 활용할 수 있게 되니, 많은 부분에서 편리함을 느낍니다. VIA가 지원되지 않은 키보드라도 어느 정도는 활용할 수 있는 팁이니, 한 번쯤 시도해볼 것을 추천합니다.