用語
Board (ボード)
MCUボード単体またはMCUを含むコントローラコンポーネント
オンボードコントローラの場合はPCB全体を指す
Shield (シールド)
ボードと組み合わせることで最終的なキーボードとなるようなシェルコンポーネント
ボードフットプリント、スイッチフットプリントを持つPCBのこと
Interconnect (インターコネクト)
シールドにある、ボードを搭載するフットプリントのこと
Self-contained Keyboard (自己完結キーボード)
オンボードコントローラを使用している等、MCUとシェルPCBが一体となっているキーボード
全てのZMK定義がボードにあり、シールド定義はない
Composite Keyboards (複合キーボード)
ボードとシールドからなるキーボード
シールド定義内にZMK統合部が配置され、同じインターコネクトを持つ複数のボード(Pro Microとnice!nanoなど)に対応することができる
環境構築
ZMK CLI (EXPERIMENTAL) をインストールする
バグを見つけたら報告しよう
Prerequisite
git --version # 2.34.1 > any
python3 --version # 3.10.12 > 3.10
pipx --version # 1.0.0 > any
Install
pipx install zmk
zmk --version # 0.2.0
作業ディレクトリを作成
zmk init
# FATAL ERROR: can't init: no west.yml found
GitHubリポジトリを教える
テンプレートを使って作ったリポジトリを想定してるっぽいけど、よくわからなかったので空のまま与えたところwest.ymlがないと怒られた
しかたがないので、Setup Scriptを使う
bash -c "$(curl -fsSL https://zmk.dev/setup.sh)"
shieldとboardを選ばされるのでhummingbirdとxiao bleを選んだ
GitHubにhttpsアクセスでpushしようとして失敗するので、自分でpushする
pushするとGitHub Actionが自動的にファームウェアをビルドしてくれる
git remote remove origin
git remote add origin git@github.com:<user>/zmk-config.git
git push -U origin main
ためしにzmk
コマンドを叩いてみたらzmk init
でするはずだったらしき初期化がちゃんと走った
zmk keyboard list # Initializing west application...
ディレクトリ構成はこうなった
. zmk-config/
├── boards/
│ └── shields/
├── build.yaml
├── config/
│ ├── hummingbird.conf
│ ├── hummingbird.keymap
│ └── west.yml
└── zephyr/
└── module.yml
pushしたら次のコマンドでGitHub Actionsのページを開く
zmk download
が、以下2点問題があって上手くいかない
- WSLにxdg-openコマンドがない → WSLでxdg-openしたい
- リモートURLがsshなのでブラウザで開けない
まあ別に自分で開けばいい