키보드 추천 세팅
CapsLock키를 1000% 활용하는 방법
여러분은 CapsLock키를 알고 계십니까? 알고 있다면 얼마나 많이, 유용하게 쓰시나요?
저는 이 키를 (원래의 용도로는) 거의 사용하지 않습니다. 아마 어떤 분들은 이 커다란 키가 어디에 쓰는 키인지도 모르는 분들도 계실 수도 있습니다. 이 키에 대해 그간 가졌던 불만은 그 쓰임새가 별로 신통치 않은 것 치고는 너무 좋은 자리에 위치하고 있다는 점입니다. 이렇게 낭비되는 키를 더 잘 쓰는 방법이 없을까요?
애플에서도 이런 생각을 했었는지, 한/영 전환 기능을 CapsLock키에 추가했습니다. CapsLock키를 짧게 누르면 한/영 전환으로, 조금 길게 누르면 대문자 고정으로 작동하게 한 것이죠. 사실 이 부분은 시간 타이밍을 절묘하게 조정할 수 있어야 하는데요, AHK(오토핫키)로도 구현은 할 수 있는데, 단일 시간 값으로 구분해보니 생각보다 자연스럽지 않았습니다.
그래서 아예 새로운 모디키(*)로서 CapsLock을 사용해보자라는 생각이 들었고, 이를 시행하기 시작했습니다. 지금부터 소개하는 설정은 대부분 제가 사용하는 컴퓨터에 적용돼있습니다.
준비물
우선 준비물은 다음과 같습니다.
- AutoHotKey V2 : 매크로나 단축키를 만들 수 있는 유용한 프로그램입니다. 무료로 공개되어 있습니다. V1/V2가 스크립트 문법이 완전히 다릅니다. 제 글에서는 V2 기준입니다.
- SharpKeys : 윈도에서는 레지스트리를 변경해서 특정한 키를 다른 키로 맵핑하는 방법이 있습니다. 이 프로그램은 그러한 키 맵핑을 간단하게 할 수 있도록 도와주는 도구입니다. (키 맵핑 변경을 복구해주는 기능도 있습니다.)
SharpKeys의 경우에는 윈도용 패키지 관리자인 scoop을 통해서 쉽게 설치할 수 있습니다.
CapsLock → F15
가장 먼저 할 일은 CapsLock키를 다른 어떤(?)키로 변경해서, 눌러도 인식이 되지 않도록 하는 것입니다. 개인적으로는 실수로 눌려진 상태로 있는 것도 불편해서, 단독으로 누르더라도 인식될 일이 없는 키로 F15키를 정했습니다. 이 키를 가지고 있는 키보드가 있는 경우도 있습니다(!). 어쨌든 스캔코드는 정의되어 있으니, 이 키를 쓰겠습니다.
Sharpkeys 를 실행하고 [add] 버튼을 눌러, 새로운 키 맵을 설정합니다. 왼쪽의 키를 오른쪽의 키로 바꾸는 것입니다. 아래 그림처럼 Caplock 키를 F15키로 바꿔줍니다.
키를 바꾼 후에는 꼭 [레지스트리에 쓰기] 버튼을 눌러야 합니다. 그리고 이 맵핑은 로그인 시점에만 불러오기 때문에, 적용을 위해서는 재부팅을 하거나 로그오프 후에 다시 로그온을 해야합니다.
다시 윈도로 돌아오게 되면 더 이상 CapsLock키가 작동하지 않게 됩니다.
새로운 키 조합 만들기
이제 AHK를 사용해서 새로운 키 조합을 만드려고 합니다. 마치 기계식 키보드의 fn 키처럼 확장하고 싶은 기능이 몇 가지 있습니다. 왼손은 F15를 누르고 있어야 하니, 주로 오른쪽에 있는 키들로 사용하는 것이 좋겠죠.
- h, j, k, l 로 ←, ↓,↑,→ 으로 이동하기 (vim style! ⌨️)
- spacebar로 한/영 전환하기
- enter로 한자 키 입력
- 상/하 키를 페이지 업/다운으로
- 좌/우 키를 Home/End로
- [, ] 키를 Home/End로
- 일반 키로 입력할 수 없는 특수문자 넣기 : ·, •, ÷, ×, ∴
이렇게 몇 가지 키 조합을 정의했으면 아래와 같이 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}")
자동실행 등록
스크립트 파일이 윈도 시작 시 같이 실행되도록 하려면 '시작 프로그램' 폴더에 등록하면 됩니다.
- "Win + R" 키를 눌러 프로그램 실행 창을 엽니다.
- "shell:startup"이라고 입력하고 엔터키를 누르면 시작 프로그램 폴더가 열립니다.
- 다른 탐색기 창에서 스크립트 파일이 있는 폴더를 열고, alt 키를 누른 상태에서 파일을 드래그하여 시작 프로그램 폴더로 가져오면, 바로가기가 시작 프로그램 폴더에 설치됩니다.
커스텀 조합키
이 팁은 오토핫키의 '커스텀 조합키' 기능을 이용해서 구현합니다. 커스텀 조합키에서 primary로 지정된 키는 원래의 기능을 잃게 되지만, F15::Send("{F15}")
와 같이 본래 키의 기능을 릴리즈하는 핫키를 추가로 설정할 수는 있습니다.
단점 및 한계
오토핫키를 사용하여 단축키를 조합했을 때, 실행 중인 오토핫키 클라이언트가 관리자 권한으로 실행 중이 아니라면, 관리자 권한으로 실행되는 앱에서는 (키 이벤트 처리를 가로챌 수 없으므로) 작동하지 않습니다.
또한 커스텀 조합키는 Shift, Ctrl과 같은 다른 모디키와는 결합되지 않아서, "Shift + capslock + H" 조합으로 커서 왼쪽의 텍스트를 선택하는 게 되지 않습니다. 사실 개인적으로 가장 아쉬운 부분이 이 지점인데, ahk에서 기능 개선이 가능할지 기다려봐야겠습니다.
어쨌든 이렇게 capslock이라는 너무 좋은 자리에 있는 키를 활용할 수 있게 되니, 많은 부분에서 편리함을 느낍니다. VIA가 지원되지 않은 키보드라도 어느 정도는 활용할 수 있는 팁이니, 한 번쯤 시도해볼 것을 추천합니다.