ZMKドキュメントを読んでいく

用語

Board (ボード)

MCUボード単体またはMCUを含むコントローラコンポーネント
オンボードコントローラの場合はPCB全体を指す

Shield (シールド)

ボードと組み合わせることで最終的なキーボードとなるようなシェルコンポーネント
ボードフットプリント、スイッチフットプリントを持つPCBのこと

Interconnect (インターコネクト)

シールドにある、ボードを搭載するフットプリントのこと

Self-contained Keyboard (自己完結キーボード)

オンボードコントローラを使用している等、MCUとシェルPCBが一体となっているキーボード
全てのZMK定義がボードにあり、シールド定義はない

Composite Keyboards (複合キーボード)

ボードとシールドからなるキーボード
シールド定義内にZMK統合部が配置され、同じインターコネクトを持つ複数のボード(Pro Microとnice!nanoなど)に対応することができる

環境構築

ZMK CLI (EXPERIMENTAL) をインストールする

バグを見つけたら報告しよう

Prerequisite

zsh
git --version # 2.34.1 > any
python3 --version # 3.10.12 > 3.10
pipx --version # 1.0.0 > any

Install

zsh
pipx install zmk
zmk --version # 0.2.0

作業ディレクトリを作成

zsh
zmk init
# FATAL ERROR: can't init: no west.yml found 

GitHubリポジトリを教える
テンプレートを使って作ったリポジトリを想定してるっぽいけど、よくわからなかったので空のまま与えたところwest.ymlがないと怒られた

しかたがないので、Setup Scriptを使う

zsh
bash -c "$(curl -fsSL https://zmk.dev/setup.sh)"

shieldとboardを選ばされるのでhummingbirdとxiao bleを選んだ

GitHubにhttpsアクセスでpushしようとして失敗するので、自分でpushする

pushするとGitHub Actionが自動的にファームウェアをビルドしてくれる

zsh
git remote remove origin
git remote add origin git@github.com:<user>/zmk-config.git
git push -U origin main

ためしにzmkコマンドを叩いてみたらzmk initでするはずだったらしき初期化がちゃんと走った

zsh
zmk keyboard list # Initializing west application...

ディレクトリ構成はこうなった

tree
. zmk-config/
├── boards/
   └── shields/
├── build.yaml
├── config/
   ├── hummingbird.conf
   ├── hummingbird.keymap
   └── west.yml
└── zephyr/
    └── module.yml

pushしたら次のコマンドでGitHub Actionsのページを開く

zsh
zmk download

が、以下2点問題があって上手くいかない

  • WSLにxdg-openコマンドがない → WSLでxdg-openしたい
  • リモートURLがsshなのでブラウザで開けない

まあ別に自分で開けばいい

ZMKを読む(Config)に続く