Compile ErgoDox keymap

この前はErgoDox EZのキーマップをGUIで設定しました。

今回はErgoDox EZのキーマップをGUIではなく、自分でコンパイルしてみます。

TL;DR

  1. ファームウェアリポジトリをダウンロード
  2. ここに自分用のディレクトリ作成
  3. 作成したディレクトリに自分のkeymap.cを設置
  4. /make keyboard=ergodox keymap=自分用のディレクトリ名を実行
  5. .build/ergodox_ez_自分用のディレクトリ名.hexが作成されるのでTeensy Loader ApplicationでErgoDoxに流し込む

完。

準備

まずファームウェアのリポジトリをダウンロードします。

ErgoDox EZのデフォルトキーマップは以下にあるのでこれを参考にします。

自分用のディレクトリ(lorentzca)を同じpathに掘っておきます。そしてそこに自分で用意したキーマップのファイルを設置しておきます(GUIでのキーマップ作成とソースコードの取得方法はこちら)。

こんな感じ。

新しくディレクトリを掘る必要は無いけれど、管理のしやすさのため掘ってみました。

コンパイルしてみる

ディレクトリツリーのルートに移動し、コンパイルします。

$ make keyboard=ergodox keymap=lorentzca
Making ergodox/ez with keymap lorentzca

avr-gcc (GCC) 6.2.0  
Copyright (C) 2016 Free Software Foundation, Inc.  
This is free software; see the source for copying conditions.  There is NO  
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/ergodox/ez/twimaster.c                     [OK]  
Compiling: keyboards/ergodox/ez/matrix.c                     [OK]  
Compiling: keyboards/ergodox/ergodox.c                     [OK]  
Compiling: keyboards/ergodox/keymaps/lorentzca/keymap.c                     [OK]  
Compiling: quantum/quantum.c                     [OK]  
Compiling: quantum/keymap_common.c                    In file included from ./tmk_core/common/progmem.h:5:0,  
                 from ./tmk_core/common/action_macro.h:20,
                 from ./tmk_core/common/action.h:25,

...

Creating load file for Flash: .build/ergodox_ez_lorentzca.hex                     [OK]

Size after:  
   text    data     bss     dec     hex filename
      0   23114       0   23114    5a4a ergodox_ez_lorentzca.hex

できた!

出力の通り、.build/ergodox_ez_lorentzca.hexにコンパイルされたファイルが作成されました! ✨

※ 他のMakeオプションなどについてはこちら。

適用

適用は先日やったとおり、Teensy Loader Applicationを使って行います。

感想

簡単だった。ドキュメントもそうだけど、すごい丁寧に作られてるんだな〜と思った。

これでGUIよりつっこんだ設定もできるようになったわけですが、そもそもまだ全然まともに打てる状態じゃないのでしばらくはGUIでの設定で充分そう...w

参考リンク

キーマップのディレクトリ構成。

ビルド手順。