Customize Planck key map
Planck のキーマップの設定方法をまとめます。
Planck については以下。
キーマップを CircleCI で自動ビルド & GitHub へリリースしている話は以下。
GUI で設定する方法
EasyAVR というキーボードのファームウェアを GUI で作成するツールがあります。 Planck 以外にも色々対応しています。
私は macOS を使っているのでマルチプラットホーム向けのものを使います。これは Python で作成されていて、環境の準備を行う必要があります。
EasyAVR のインストール
以下のドキュメントを見ながら進めていきます。
まず Python 環境のとマイコンをコマンドラインから管理する環境の準備。
brew install python3
pip3 install wxPython==4.0.3
brew install dfu-programmer
EasyAVR をダウンロード。
そしてインストール。
pip3 install -U ./easykeymap-3.1.9.tar.gz
起動確認。
python3 -m easykeymap
立ち上がれば OK です。
EasyAVR の使い方メモ
- ⌘N で新規作成
- デバイスを選択
- layout は MIT がスペースが大きいやつで、 ALL Keys が格子型のやつです
- 初期の状態がこんな感じ
- Layer1 以降は空っぽ
- Fn1 キーを押した時のレイヤーがLayer1に対応している
- あとはぽちぽちして好みの配置にしてく
- save するとjsonが吐かれる
- 中身はこんな感じ。直接いじる気にはなれないw
$ cat Desktop/test.json | jq
{
"unique_id": "PLANCK_001",
"layout_mod": null,
"keymap": [
[
[
[
"HID_KEYBOARD_SC_TAB",
0,
"0",
0
],
[
"HID_KEYBOARD_SC_Q",
0,
"0",
0
],
[
"HID_KEYBOARD_SC_W",
0,
"0",
0
],
[
"HID_KEYBOARD_SC_E",
0,
"0",
0
],
...
- build で hex ファイルが吐かれる。これを Planck のファームウェア更新に使う
ファームウェアを更新する
ファームウェアの更新は qmk_toolbox というツールを使います。
ビルド環境諸々のインストールから。
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc dfu-programmer gcc-arm-none-eabi avrdude
brew cask install caskroom/drivers/qmk-toolbox
インストールが終わったら使ってみます。
Planck の背中のボタンを押して、 qmk-toolbox を起動して EasyAVR でビルドした hex ファイルを開いて flash ボタンを押します。マイコンの指定は自動でされました。
左下からいろんなキーボードのデフォルトのキーマップの hex ファイルをダウンロードできるみたいです。失敗してわけわからなくなったらすぐデフォルトに戻せるので親切設計ですね。
CUI 編
準備。まずはデフォルトのキーマップをビルドしてみます。
ビルドに必要なパッケージは qmk-toolbox を入れるところで揃えてあります。
ので、ファームウェアのリポジトリをクローンしてきておもむろに make します。
Planck の場合は make planck/<PCB のリビジョン>:<キーマップ名 >
です。
git clone https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
make planck/rev4:default
うまくいくと qmk_firmware/.build 以下に hex ファイルができます。
$ ls .build/planck_rev4_default.hex
.build/planck_rev4_default.hex
あとは先ほどと同じように qmk_toolbox で書き込めば良いです。ここもコマンドラインからできると思いますがまだ試してないです。
自分のキーマップを作りたいときは、 qmk_firmware/keyboards/planck/keymaps 以下に作っていけば良い。
こんな感じで。
- qmk_firmware/keyboards/planck/keymaps に移動
- default ディレクトリをコピー
- keymap.c をいじる
- make
- qmk-toolbox で書き込み
yay!
感想
GUI でできる方法も調べたけど、結局変更の差分やテキストベースでのかっちりした管理が可能になるので、 CUI でやるのが良いかなと思います。
GitHub で管理できるのが良いですね。
冒頭に紹介したように CI ツールとの連携で自動化等もできるので便利。