対応している分割キーボード・キーマップ形式
daken は ZMK と QMK の主要なキーマップ形式を、ブラウザ上で取り込んで可視化・練習できるようにしています。本ページでは対応している形式と、自分のキーボードでの使い方を解説します。
ZMK と QMK の違い(簡略表)
| 項目 | ZMK | QMK |
|---|---|---|
| 主な対象 | 無線(nRF52 系)中心 | 有線中心(一部無線対応) |
| キーマップ記法 | DTS(Devicetree) | C ヘッダー / JSON |
| 設定ファイル | .keymap | keymap.c / keymap.json |
| レイヤー | ○ | ○ |
| コンボ | ○(標準) | ○(要 define) |
ZMK .keymap の取り込み
ZMK の .keymap ファイルは DTS(Devicetree Source)形式で書かれています。daken は内部で軽量な DTS パーサを使って keymap ノードと layers を読み取り、レイヤー単位の bindings を内部スキーマに変換します。
典型的なファイルパス:
config/<board>.keymap # 例: config/corne.keymap
物理レイアウト(キー位置)は、別途アップロードした layout JSON があればそれを使い、なければ通常のキーボード(ベースレイヤーのみ)として表示します。
QMK keymap.json の取り込み
QMK Configurator や qmk json2c で出力した keymap.json をそのまま読み込めます。daken は layers 配列のキーコードを内部スキーマに正規化し、ZMK と同じ表示・練習ロジックで扱います。
keyboards/<board>/keymaps/<you>/keymap.json
QMK で keymap.c しかない場合
daken が読み込めるのは keymap.json(JSON 形式)のみで、C 言語で書かれた keymap.c はそのままでは読み込めません。次のいずれかの方法で JSON を用意してください。
- QMK CLI で変換する:
qmk c2json keymap.cを実行するとkeymap.jsonが得られます(QMK 環境構築済みの場合はこれが最短) - QMK Configurator で作り直す: QMK Configurator 上で自分のキーマップを再現し、Export ボタンで
keymap.jsonをダウンロードします。環境構築が不要な代わりに、手作業での移し替えになります
表示に対応しているバインディング
読み込んだキーマップは、レイヤーごとのキー一覧として表示されます。よく使う主要なバインディングは、意味が分かる表記に整形して表示します。
kp(通常のキー押下)、mt(Mod-Tap)、lt(Layer-Tap)mo(モーメンタリレイヤー)、to(レイヤー切替)trans/none(透過・無効)
上記以外のバインディング(Bluetooth 操作の bt など)も、behavior 名とパラメータをそのまま表示するので、キーマップ全体の見通しは失われません。各バインディングの意味は 用語集 で解説しています。
物理レイアウトのプリセットと JSON
実物に近い表示にするための物理レイアウト(キー位置の座標)は、layout JSON をアップロードして指定します:
- JSON アップロード: ZMK の
matrix_transformJSON や QMK のinfo.jsonから抽出した layout JSON を読み込むと、任意のキーボードに対応できます - 指定しない場合は通常のキーボード(ベースレイヤーのみ)として表示します
layout JSON は次の構造を想定しています:
{
"keyboard": "my_board",
"layouts": {
"LAYOUT": {
"layout": [
{ "x": 0, "y": 0.25 },
{ "x": 1, "y": 0.125, "w": 1, "h": 1 },
...
]
}
}
}x / y がキーユニット単位の座標、w / h(省略時 1)がキーの幅・高さ、r が回転角です。複数の layout variant がある場合は最初のものが使われます。配列の i 番目のキーが、キーマップの bindings の i 番目に対応する点だけ注意してください。順序がずれていると、表示上のキーと実際のキーが食い違います。
うまく読み込めないときのチェックリスト
- 拡張子と形式を確認する: ZMK は
.keymap(DTS)、QMK は.jsonのみ対応です。keymap.cは前述の方法で JSON に変換してください - ファイルを編集せずそのまま読み込む: zmk-config の
config/配下や Configurator の Export で得たファイルが最も確実です - レイヤー表示と物理キーがずれる場合: layout JSON のキー順と bindings の順序が一致しているか確認してください
- 解決しない場合: どのキーボード・どのファイルで起きたかを添えて お問い合わせ からご報告ください。パーサの対応を改善します
キーマップを取り出す方法
- ZMK: GitHub の
zmk-config-<your-name>リポジトリのconfig/配下から.keymapをダウンロード - QMK: QMK Configurator の Export ボタンで
keymap.jsonを取得、またはqmk_firmware/keyboards/配下の自分のkeymap.jsonを直接利用