키보드 매핑:상어60과 K9 Pro
키보드가 자리를 많이 차지하는 것을 싫어해서 포커 배열을 쓰기 시작한 지 십수년 쯤 됐다. 로우 프로파일 키보드인 K9 Pro
에 정착한 지도 몇 해가 지났다. 최근 블로그 정비하면서 더 빠른 문장부호 입력 방법을 궁리하던 중, 키 매핑을 손봐서 F13 ~ F24 키 코드를 단축키 지정에 활용하자는 아이디어가 떠올랐다.
매핑 계획
기존 매핑
포커 배열 키보드는 우하단 특수키 4개 중 하나 이상을 Fn 키로 활용하는 경우가 많다. 그러나 표준 위치가 정해지지 않았다는 점에서 미완성으로 느껴졌고, 해당 영역 자체가 자주 누르기에 피곤했다. 그래서 활용 빈도는 낮지만 긴장 없이 누를 수 있는 CapsLock을 Fn 키로 전용해서 지금까지 사용했다. 여기에 더해, 우하단 특수키 4곳에 순서대로 ← ↓ ↑ →를 매핑해서 키 조합 없이 방향을 입력할 수 있게 했다. 화살표들이 한 줄로 배치된 것은 타협이지만, vi
의 H J K L 이동 시퀀스를 그대로 따른 것이므로 적응은 쉽다1. Fn
레이어에서는 관습에 따라 숫자 키 열에 F1 ~ F12를, 커스텀 룰을 확장해서 우하단 특수키 4개에 순서대로 Home PgDn PgUp End를 배정했다.
레이어 | 위치 | 기능 |
---|---|---|
0 | CapsLock | Fn1 |
0 | BR02 | ← |
0 | BR1 | ↓ |
0 | BR2 | ↑ |
0 | BR3 | → |
0 | Esc | Esc/~ |
1 | BR0 | Home |
1 | BR1 | PgDn |
1 | BR2 | PgUp |
1 | BR3 | End |
1 | 1/! ~ =/+ | F1 ~ F12 |
1 | Esc | `/~ |
1 | Bs | Del |
새 매핑
SpaceFn3 키 코드를 이용해 Space 키를 조건부 Fn1 키로 사용하고, 기존 CapsLock 위치는 Fn2로 배정했다. 추가된 Fn2
레이어에서는 F11 ~ F24 입력을 받는다. 이 방식은 Space 키를 홀드해서 공백을 연속으로 입력할 수 없는 단점이 있다. 그러나 기능을 희생하지 않고 추가 레이어에 접근할 수 있으며 가장 사용 빈도가 높고 편안한 키를 중심으로 조작할 수 있다는 장점이 있다.
레이어 | 위치 | 기능 |
---|---|---|
0 | Space | SpaceFn1 |
0 | CapsLock | Fn2 |
0 | BR0 | ← |
0 | BR1 | ↓ |
0 | BR2 | ↑ |
0 | BR3 | → |
0 | Esc | Esc/~ |
1 | BR0 | Home |
1 | BR1 | PgDn |
1 | BR2 | PgUp |
1 | BR3 | End |
1 | 1/! ~ =/+ | F1 ~ F12 |
1 | Esc | `/~ |
1 | Bs | Del |
2 | 1/! ~ =/+ | F11 ~ F22 |
2 | [/{ ~ ]/} | F23 ~ F24 |
2 | BR0 | CapsLock |
2 | BR1 | NumLock |
2 | BR2 | ScrlLock |
2 | BR3 |
매크로 예비
K9 Pro
가 VIA
앱을 지원한다는 점을 이용해서 미리 매크로 레이어를 추가했다.
레이어 | 위치 | 기능 |
---|---|---|
1 | Tab | Fn3 |
2 | Tab | Fn3 |
3 | Esc | M0 |
3 | 1/! ~ =/+ | M1 ~ M12 |
3 | [/{ ~ ]/} | M13 ~ M14 |
3 | Bs | M15 |
레이아웃 업데이트
상어60
구입 당시 널리 쓰이던 DZ60
보드45가 설치된 키보드. 해당 보드는 VIA
앱을 지원하지 않으므로6 QMK Configurator
로 매핑 프로필과 펌웨어를 마련하고 QMK Toolkit
으로 플래싱했다. 첫 시도는 드라이버 불일치 이슈7로 실패했지만, Zadig
앱으로 드라이버를 강제로 변경8하고 플래싱에 성공했다.
K9 Pro
이 키보드는 외장에 노출된 OS 선택(Win/Mac) 스위치로 기본 레이어를 지정(0/1)하는 기능이 있어 확장 레이어 인덱스를 1씩 밀어야 했다. VIA
앱은 매핑하는 즉시 하드웨어에 반영되기 때문에 작업은 단순했다.
결과 보고
- 키 조합 없이 ←, ↓, ↑, → 키 코드를 입력할 수 있다.
- Space 키 조합으로 F1 ~ F12, Home, End, PgDn, PgUp 키 코드를 입력할 수 있다.
- CapsLock 키 조합으로 F11 ~ F24, CapsLock, NumLock, ScrlLock, Print 키 코드를 입력할 수 있다.
- (K9 Pro 한정) Space + Tab 또는 CapsLock + Tab 키 조합으로 M0 ~ M15 키 코드를 입력할 수 있다.
-
이 배열이 입력 빈도를 반영했다는 주장은 증명되지 않았지만, 코딩 환경에서는 타당하다고 본다. ↩
-
BR0~BR3은 우하단 특수키 네 개의 물리적 위치를 의미한다. ↩
-
Space 키를 홀드하는 동안에는 Fn1 키로, 릴리즈하는 순간에는 Space 키로 동작한다. ↩
-
ATmega32U4
컨트롤러를 사용한다. ↩ -
DFU
모드 진입 방법은 USB 케이블 연결 시 Esc 키를 홀드하는 것이다. ↩ -
본 작업에서는 장치를 인식시키는 방법이 있는지 조사하지 않았다. ↩
-
Atmel DFU device has libusb0 driver assigned but should be WinUSB. Flashing may not succeed.
↩ -
DFU
모드에서 드라이버를libusb0
→winusb
으로 변경했다. ↩