map: QMKはVIAのみDynamic対応とし、他の公式機能をStatic、非公式機能を当面非対応とする

- DynamicはQMK本家masterのVIAプロトコルが公開する項目に限る
- 公式機能のうちVIAで変更できないものはFirmware Generatorで生成する対象とする
- フォーク・master以外のブランチ・Community Modulesは当面非対応(MAP-P-6)、固有コードは原則非対応
- 対応QMKはコミット固定とし、UIと実機照合はVIAプロトコル・キーコード体系のバージョンで行う
- Static定義への参照は名前で持ち、VIA管理外のEEPROM設定は読み出せない制約を明記
- P-3のインデントを修正

Journal: journal/2026-09-23-qmk-dynamic-scope.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P4UAjpgV7DLqJqF3sEf1bi
This commit is contained in:
2026-09-23 20:33:43 +09:00
co-authored by Claude Opus 5.5
parent cceb9a3e53
commit 18e060d390
3 changed files with 130 additions and 10 deletions
+32 -10
View File
@@ -46,8 +46,25 @@ Staticの出力は[全体方針のFirmware Generator](keyboard-design-layers.md#
MAPエディタはDynamicの読み書きを提供する。Dynamicで変更できる範囲は、
対象ファームウェアと既存プロトコルが公開する範囲に従う。
Staticで扱う動作定義の範囲と、Dynamicで変更できない設定の扱いは、
[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
当面の対象ファームウェアはQMKとし、対応範囲を次のように分ける。
- Dynamic: QMK本家のVIAプロトコルが公開する項目に限る。
- Static: QMK本家masterの公式機能のうちVIAで変更できないものは、Firmware Generatorで生成する対象とする。
- 次のものには当面対応しない。
- Vial等のフォーク
- XAP、developブランチ等、master以外にある機能
- Community Modules
- キーボード・キーマップ固有のコード(VIAのキーボード独自メニューを含む)には、原則として対応しない。
Staticで扱う動作定義のうち、どこまでを初期対応するかは[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
Staticで定義する動作(タップダンス等)をキーへ割り当てるときは、定義を名前で参照し、出力時に番号へ変換する。
割り当て自体はVIAで読み書きできても、参照先の定義はStaticにしかないため、
[レイヤーの参照](#キーマップレイヤーの識別)と同じく並び順に依存させない。
QMK本家のVIAには、VIAの管理外にある実機の保存設定(Magic設定、保存されたデフォルトレイヤー、Unicodeの入力モード等)を読み出す手段がない。
これらを実機で変更しても、MAPエディタはプロジェクトへ取り込めない。
プロジェクトのMAP、Staticで組み込んだ初期キーマップ、実機に保存された現在の割り当ては区別する。
実機で調整してMAPへ取り込んだ割り当ては、Firmware Generatorへの入力としてStaticの初期キーマップへ反映できるようにする。
@@ -63,7 +80,12 @@ Staticで扱う動作定義の範囲と、Dynamicで変更できない設定の
- VIAへの対応は、Remapというアプリ全体の機能を再現することを意味しない。
- 初期の実装対象はVIAに限る。
対応するVIAプロトコルのバージョン、キーコード体系、編集項目の範囲は、
対応するQMKは特定のコミットに固定し、更新するタイミングはユーザーが個別に判断する。
MAPエディタのUIには、対応しているVIAプロトコルとキーコード体系のバージョンを明示する。
接続した実機とはこの2つのバージョンで照合し、一致しない実機には対応しない。
実機から取得できるバージョン情報がこの2つに限られるため。
最初に対応するQMKのコミット、キーコード体系、編集項目の範囲は、
[P-2](#p-2-viaの初期対応範囲)で扱う。
## 持たないもの
@@ -89,21 +111,21 @@ MAPエディタは、キーコードを当面US配列の文字で表示する。
### P-1 割り当てる動作と保存形式の範囲
- 位置づけ: MAPのデータモデルを定めるための設計判断。
- 未決事項: キーコード割り当てに加え、タップ/ホールド、コンボ、マクロ等の定義・設定をどこまで扱うか。Staticで扱う範囲、ファームウェア共通表現と固有表現の境界も未定。
- 完了条件: 初期対応する動作と設定、その保存形式、Static出力とDynamic読み書きでの扱いをユーザーが決める。
- 未決事項: キーコード割り当てに加え、タップ/ホールド、コンボ、マクロ等の定義・設定のうち、どこまでを初期対応するか。ファームウェア共通表現と固有表現の境界も未定。
- 完了条件: 初期対応する動作と設定、その保存形式をユーザーが決める。
### P-2 VIAの初期対応範囲
- 位置づけ: VIA通信と編集UIの実装に必要な対応範囲の判断。
- 未決事項: 対応プロトコルのバージョン、キーコード体系、レイヤー別割り当て以外に読み書きする項目、対象ファームウェアの機能・容量制約の確認方法。
- 未決事項: 最初に対応するQMKのコミット、キーコード体系、レイヤー別割り当て以外に読み書きする項目、対象ファームウェアの機能・容量制約の確認方法。
- 完了条件: 対象バージョンと読み書きする項目を定め、対応する新規キーボードの構成で必要なコマンドと制約を確認する。
### P-3 プロジェクトと実機の対応・状態管理
- 位置づけ: 実機への読み書きをMAPへ結び付けるための設計判断。
- 未決事項:
- 出力した構成とPHYキーID・通信上のアドレスの対応をどこに保持し、接続した実機とどう照合するか。
- VIAの割り当ては接続先(row/col)単位で保存されるため、同じ接続先に配線された排他キーは、実機では1つの割り当て先を共有する。書き込み時に選択外のバリアントのキーの割り当てをどう扱うか、読み出した値をどのPHYキーへ戻すか(実機側のlayout optionの選択に従うか)。
- バリアントや配線の変更後の扱い。
- プロジェクトと実機、プロジェクトとStaticで組み込んだ初期キーマップの差分表示・保存・反映の操作。
- 出力した構成とPHYキーID・通信上のアドレスの対応をどこに保持し、接続した実機とどう照合するか。
- VIAの割り当ては接続先(row/col)単位で保存されるため、同じ接続先に配線された排他キーは、実機では1つの割り当て先を共有する。書き込み時に選択外のバリアントのキーの割り当てをどう扱うか、読み出した値をどのPHYキーへ戻すか(実機側のlayout optionの選択に従うか)。
- バリアントや配線の変更後の扱い。
- プロジェクトと実機、プロジェクトとStaticで組み込んだ初期キーマップの差分表示・保存・反映の操作。
- 完了条件: 対応情報の生成・保存・照合方法と状態管理を定め、設計から実機へ反映し、Remap等での変更を元のPHYキーIDへの割り当てとして取り込む手順を確認する。排他キーを含む構成で、書き込みと読み出しがバリアントの選択に従って元のPHYキーへ対応することを確認する。