対応している分割キーボード・キーマップ形式

daken は ZMK と QMK の主要なキーマップ形式を、ブラウザ上で取り込んで可視化・練習できるようにしています。本ページでは対応している形式と、自分のキーボードでの使い方を解説します。

ZMK と QMK の違い(簡略表)

項目ZMKQMK
主な対象無線(nRF52 系)中心有線中心(一部無線対応)
キーマップ記法DTS(Devicetree)C ヘッダー / JSON
設定ファイル.keymapkeymap.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_transform JSON や 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 を直接利用