map: MAPレイヤーを新設し、実機との読み書きとVIA対応を決める

MAPエディタは割り当ての編集に加え、実機への書き込みと読み出しを一組で
提供する。新規キーボードの設計から実機での調整までを主眼に置くため。
最初の通信プロトコルはVIAとし、独自プロトコルの追加やそのための
ファームウェアのフォークは行わない。

VIA向けキーボード定義の生成はFirmware Generator、ビルドと書き込みは
IDEの責務として、MAP編集の外に置いた。VIAで通信できることと、MAPが
そのデータを所有することは区別する。

Journal: journal/2026-09-22-map-via-workflow.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MtVk8W4yK6j3eCqQpEQBLS
This commit is contained in:
2026-09-22 22:04:16 +09:00
co-authored by Claude Opus 5
parent 26df6edc06
commit 142357a440
4 changed files with 149 additions and 9 deletions
+16 -9
View File
@@ -50,11 +50,12 @@ ELCはIDXを参照せず、IDXもELCを参照しない。MAPもIDXを参照し
### 4. MAPレイヤー (キーマップ)
- **役割**: キーとキーコードの対応
- **役割**: キーマップレイヤーごとのキーへの割り当て
- **入力**: PHYのキーID
- **対応ツール**: ファームウェア、VIA、Remap
- **出力**: レイヤー別キーコード
- **対応ツール**: MAPエディタ (Keymap Designer)
- **出力**: MAP JSON (現行形式はレイヤー別キーコード割り当て)
- **備考**: キーの参照にPHYのキーIDを使う。配列としての並べ替えは、出力時にバリアント選択後のIDXの並び順で行う
- **詳細**: [MAPレイヤー](MAPレイヤー.md)。動作定義と保存形式の拡張範囲は、[MAPのP-1](MAPレイヤー.md#p-1-割り当てる動作と保存形式の範囲)で扱う
### 5. IMEレイヤー (入力変換)
@@ -85,19 +86,22 @@ ELCはIDXを参照せず、IDXもELCを参照しない。MAPもIDXを参照し
- 視覚的に配線を確認
- 出力: ELC JSON
#### Keymap Designer
#### Keymap Designer (MAPエディタ)
- PHY JSONを入力
- レイヤー別キーコード割り当て
- VIA/Remapとの互換性
- PHYの配置を参照し、キーマップレイヤーごとの割り当てを編集・保存する
- 新規キーボードの設計から実機での調整までを扱い、割り当ての読み書きを一組で提供する
- 実機との通信は既存のVIAプロトコルから対応し、対象を段階的に増やす
- 出力: MAP JSON
具体的な責務と通信上の制約は、[MAPレイヤー](MAPレイヤー.md#mapエディタの責務)に従う。
#### Firmware Generator
- 全レイヤーの情報を統合
- バリアントを選択し、IDXから対象外のキーを除いた並びで、キー番号の対応表とMAPの配列を生成
- row / col など、ターゲットが要求する派生情報をここで割り当てる
- QMK/VIA/KMK等へ変換
- VIA向けキーボード定義は、配置と接続先の対応などを統合して生成する
- 出力: ターゲット固有の設定ファイル
### 統合環境 (IDE)
@@ -107,6 +111,9 @@ ELCはIDXを参照せず、IDXもELCを参照しない。MAPもIDXを参照し
- **バージョン管理統合**: テキストベース定義でgit管理
- **ワークフローサポート**: ガイド付きウィザード、テンプレート
ビルド・ファームウェアの書き込みは、MAP編集とは別の実行機能として扱う。
同じ画面から各ツールを利用できることと、各レイヤーがそのデータや処理を所有することは区別する。
## プロトコル設計
### レイヤー間インターフェース
@@ -122,7 +129,7 @@ PHY → IDX
PHY → MAP
Input: キーID
Output: レイヤー別キーコード
Output: MAP JSON (現行形式はレイヤー別キーコード割り当て)
All → Firmware
Input: 各レイヤーのデータ + バリアント選択
@@ -158,7 +165,7 @@ All → Firmware
## 既存ツールとの関係
- **KLE**: PHYデータを表示できる既存のビュワー。KLE JSONの読み書きで連携する
- **VIA/Remap**: MAP Layerクライアントとして連携
- **VIA/Remap**: 同じVIA対応実機の割り当てを編集する外部クライアント。外部で調整した結果もMAPエディタで読み出してプロジェクトへ戻す。対応範囲は[MAPのP-2](MAPレイヤー.md#p-2-viaの初期対応範囲)、実機との対応・状態管理は[MAPのP-3](MAPレイヤー.md#p-3-プロジェクトと実機の対応状態管理)で扱う
- **QMK Configurator**: Firmware Generatorのターゲット
## 配慮事項