이 글은 QMK 펌웨어를 사용하는 키보드의 키 맵핑을 간단한 프로그래밍을 통해서 수정하는 방법을 설명합니다. QMK 펌웨어를 사용하는 키보드 목록은 여기에서 확인할 수 있습니다. 키보드 제조사에서 공식적으로 펌웨어를 업데이트하는 키보드 목록은 다음과 같습니다.
- OLKB Planck, Preonic, Atomic
- ErgoDox EZ
- Clueboard, Cluecard, Cluepad
이 밖에서 우리나라에서도 많이 사용하는 키보드인 Happy Hacking 키보드도 제조사에서 직접 관리하는 것은 아니지만 QMK 커뮤니티에서 관리하는 것으로 알고 있습니다. 다수의 프로그래밍 가능한 키보드가 QMK 펌웨어를 사용하고 있으므로 참고하셔도 좋습니다. 프로그래밍 가능한 키보드를 선택한 사용자는 아마도 프로그래밍을 할 수 있을 것으로 예상되지만, 이 글은 그렇지 않은 사람들도 쉽게 따라할 수 있도록 작성하겠습니다. 프로그래밍과 관련된 설명을 하는 것이 아니라 자신의 원하는 키 맵핑을 작성하여 키보드에 적용하는 방법을 단계별로 구분하여 설명하겠습니다.
Windows 10에서 리눅스 서브 시스템 추가
리눅스 서브 시스템을 추가하고, 계정 및 비밀번호까지 설정하면 끝입니다.
GitHub를 사용하여 qmk_firmware Fork하기
링크를 누르면 과정별로 자세한 설명이 되어 있으므로 참고하시길 바랍니다.
- GitHub 계정을 생성한 후, 로그인합니다.
- QMK Firmware 공식 GitHub를 Fork합니다.
이미지의 오른쪽 구석에 빨간 동그라미로 되어 있는 버튼을 누르면 됩니다.
- 다시 GitHub로 홈으로 우측을 보면 방금 Fork한 QMK Firmware를 확인할 수 있습니다.
- qmk_firmware를 클릭하면 Fork한 곳으로 이동합니다.
- 이동한 후, 웹 브라우저 주소창의 주소를 복사합니다.
Bash를 사용하여 GMK Firmware Clone하기
- 윈도우키를 누르고, ‘cmd’를 입력하여 Command Prompt를 켭니다.
- ‘bash’라고 명령어를 입력하면 Bash가 실행됩니다.
- 자신이 원하는 곳으로 이동합니다. 저는 ‘Documenta’ 디렉토리에 설치하도록 하겠습니다.
- cd Documents/ 를 입력합니다.
- 정상적으로 이동되었다면 ‘/mnt/c 혹은 d와 같은 디스크 이름/계정명/Documents’입니다.
- Clone에 필요한 다양한 라이브러리를 설치합니다.
- sudo apt-get update
- sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
- 이 두 명령어를 복사해서 차례대로 각각 실행합니다.
- 디렉토리가 변경되면 우리가 Fork한 QMK Firmware을 Clone합니다.
- git clone --recurse-submodules [Fork했던 주소](괄호는 넣지 않습니다.)
- clone이 완료되면 qmk_firmware 디렉토리가 생성되고, 필요한 파일들이 다운로드되어 있다는 것을 확인할 수 있습니다.
- qmk_firmware 디렉토리로 이동합니다.
- cd qmk_firmware/
- 펌 웨어 작성에 필요한 도구를 설정합니다.
- util/wsl_install.sh
- 설치 과정 중에 설정을 적당하게 해주면 됩니다.
- 이 과정에 설치되는 Flip은 나중에 펌 웨어를 Flashing하는 프로그램입니다.
- 펌 웨어 작성 준비는 모두 끝났습니다.
자신만의 키맵 작성하기
- ‘자신이 설치한 경로\qmk_firmware\keyboards\planck\keymaps\’로 이동합니다.
- default 폴더를 복사해서 그대로 붙여넣은 다음, 디렉토리명을 자신이 원하는대로 변경합니다.
- 붙여넣은 폴더로 이동해서 ‘keymap.c’ 파일을 엽니다.
- 자신이 원하는대로 키맵핑을 수정합니다.
- 수정할 부분은 [_QWERTY], [_LOWER], [_RAISE]입니다.
- 이미지에서 볼 수 있듯이 녹색 글자 부분과 흰색 글자 부분은 정확히 맵핑되어 있습니다. 녹색 부분은 수정하지 않아도 문제는 없지만, 키맵핑을 수정할 때, 헷갈리지 않도록 녹색 글자 부분도 수정하고 흰색 글자 부분도 수정하고 저장합니다.
펌웨어 빌드하고, Flashing하기
- 다시 qmk_firmware의 디렉토리로 이동합니다.
- make planck-rev4-[자신이 정했던 디렉토리명] (괄호는 생략합니다.)
- 이 명령어로 키보드의 빌드 파일인 planck_rev4_자신이 정했던 디렉토리명].hex 파일이 생성됩니다.
- Filp을 실행합니다.
- Device > select > ATmega32U4를 선택합니다.
- Planck 키보드는 아래쪽의 리셋 버튼을 누릅니다.
- USB 모양 버튼을 누르고, USB를 선택합니다. 그리고 OPEN을 선택합니다.
- 키보드가 리셋이 된 상태가 아니면 USB 연결이 되지 않습니다.
- 연결이 되지 않았다면 다시 키보드 리셋 버튼을 눌러줍니다.
- File > Load HEX File을 선택합니다.
- qmk_firmware/.build/ 디렉토리를 선택합니다.
- make 명령어로 만든 planck_rev4_[자신이 정했던 디렉토리명].hex 파일을 선택합니다.
- Run 버튼을 누릅니다.
- 성공하였다면 Start Application을 누릅니다.
- 키보드가 다시 실행되고 수정한 키 맵핑이 적용되어 있을 것입니다.
공식 메뉴얼은 여기에서 볼 수 있습니다.