Compare commits
6
Commits
54f292b08e
...
cceb9a3e53
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cceb9a3e53 | ||
|
|
cd502e260f | ||
|
|
44035a7915 | ||
|
|
76406e2f02 | ||
|
|
46905b1e79 | ||
|
|
63da6e77d8 |
+25
-2
@@ -19,6 +19,15 @@ MAPのキー参照にはPHYのキーIDを使い、実機との通信に使うア
|
|||||||
レイヤー別のキーコード割り当てを出発点とする。
|
レイヤー別のキーコード割り当てを出発点とする。
|
||||||
動作定義と保存形式の拡張範囲は、[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
|
動作定義と保存形式の拡張範囲は、[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
|
||||||
|
|
||||||
|
新規作成したMAPは、すべてのキーが未割り当ての状態から始める。
|
||||||
|
PHYのラベルからの自動適用は行わない([PHY「ラベル」](PHYレイヤー.md#ラベル))。
|
||||||
|
|
||||||
|
## キーマップレイヤーの識別
|
||||||
|
|
||||||
|
キーマップレイヤーは、並び順と独立した名前で識別する。名前はMAP内で一意とする。
|
||||||
|
レイヤーを切り替える動作も名前でレイヤーを参照し、番号へは出力時に並び順から変換する。
|
||||||
|
レイヤーの並べ替えや挿入で参照先がずれないようにするため。IDXがキー番号を正本にしないのと同じ理由による。
|
||||||
|
|
||||||
## MAPエディタの責務
|
## MAPエディタの責務
|
||||||
|
|
||||||
- PHYの配置を参照し、キーマップレイヤーごとの割り当てを編集・保存する。
|
- PHYの配置を参照し、キーマップレイヤーごとの割り当てを編集・保存する。
|
||||||
@@ -40,6 +49,10 @@ MAPエディタはDynamicの読み書きを提供する。Dynamicで変更でき
|
|||||||
Staticで扱う動作定義の範囲と、Dynamicで変更できない設定の扱いは、
|
Staticで扱う動作定義の範囲と、Dynamicで変更できない設定の扱いは、
|
||||||
[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
|
[P-1](#p-1-割り当てる動作と保存形式の範囲)で扱う。
|
||||||
|
|
||||||
|
プロジェクトのMAP、Staticで組み込んだ初期キーマップ、実機に保存された現在の割り当ては区別する。
|
||||||
|
実機で調整してMAPへ取り込んだ割り当ては、Firmware Generatorへの入力としてStaticの初期キーマップへ反映できるようにする。
|
||||||
|
実機の保存内容を初期化しても、調整後の割り当てに戻せるようにするため。
|
||||||
|
|
||||||
## 対応プロトコル
|
## 対応プロトコル
|
||||||
|
|
||||||
最初に対応する通信プロトコルはVIAとし、対応プロトコルを絞って段階的に増やす。
|
最初に対応する通信プロトコルはVIAとし、対応プロトコルを絞って段階的に増やす。
|
||||||
@@ -58,9 +71,15 @@ Staticで扱う動作定義の範囲と、Dynamicで変更できない設定の
|
|||||||
物理配置、配線、キーの出力番号は、それぞれPHY・ELC・IDXで扱う。
|
物理配置、配線、キーの出力番号は、それぞれPHY・ELC・IDXで扱う。
|
||||||
OS配列やIMEの入力変換はIME側の責務とし、外部ツールで編集できる照明等の設定も、
|
OS配列やIMEの入力変換はIME側の責務とし、外部ツールで編集できる照明等の設定も、
|
||||||
VIAで通信できるという理由だけでMAPの所有データには含めない。
|
VIAで通信できるという理由だけでMAPの所有データには含めない。
|
||||||
|
MAPエディタは、キーコードを当面US配列の文字で表示する。
|
||||||
|
|
||||||
アナログ入力の解釈の所属は、[全体方針のP-1](keyboard-design-layers.md#p-1-アナログ値の解釈をどの層が持つか)で扱う。
|
アナログ入力の解釈の所属は、[全体方針のP-1](keyboard-design-layers.md#p-1-アナログ値の解釈をどの層が持つか)で扱う。
|
||||||
|
|
||||||
|
## 保留課題
|
||||||
|
|
||||||
|
- [MAPの保留課題](backlog/README.md#map)
|
||||||
|
- [PHYの保留課題](backlog/README.md#phy)
|
||||||
|
|
||||||
## 検討済み・非採用
|
## 検討済み・非採用
|
||||||
|
|
||||||
- MAPエディタをStaticに閉じる (journal/2026-09-22-map-via-workflow.md)
|
- MAPエディタをStaticに閉じる (journal/2026-09-22-map-via-workflow.md)
|
||||||
@@ -82,5 +101,9 @@ VIAで通信できるという理由だけでMAPの所有データには含め
|
|||||||
### P-3 プロジェクトと実機の対応・状態管理
|
### P-3 プロジェクトと実機の対応・状態管理
|
||||||
|
|
||||||
- 位置づけ: 実機への読み書きをMAPへ結び付けるための設計判断。
|
- 位置づけ: 実機への読み書きをMAPへ結び付けるための設計判断。
|
||||||
- 未決事項: 出力した構成とPHYキーID・通信上のアドレスの対応をどこに保持し、接続した実機とどう照合するか。バリアントや配線の変更後の扱い、プロジェクトと実機の差分・保存・反映の操作も未定。
|
- 未決事項:
|
||||||
- 完了条件: 対応情報の生成・保存・照合方法と状態管理を定め、設計から実機へ反映し、Remap等での変更を元のPHYキーIDへの割り当てとして取り込む手順を確認する。
|
- 出力した構成とPHYキーID・通信上のアドレスの対応をどこに保持し、接続した実機とどう照合するか。
|
||||||
|
- VIAの割り当ては接続先(row/col)単位で保存されるため、同じ接続先に配線された排他キーは、実機では1つの割り当て先を共有する。書き込み時に選択外のバリアントのキーの割り当てをどう扱うか、読み出した値をどのPHYキーへ戻すか(実機側のlayout optionの選択に従うか)。
|
||||||
|
- バリアントや配線の変更後の扱い。
|
||||||
|
- プロジェクトと実機、プロジェクトとStaticで組み込んだ初期キーマップの差分表示・保存・反映の操作。
|
||||||
|
- 完了条件: 対応情報の生成・保存・照合方法と状態管理を定め、設計から実機へ反映し、Remap等での変更を元のPHYキーIDへの割り当てとして取り込む手順を確認する。排他キーを含む構成で、書き込みと読み出しがバリアントの選択に従って元のPHYキーへ対応することを確認する。
|
||||||
|
|||||||
@@ -98,3 +98,25 @@
|
|||||||
- 再開条件: 既存コミュニティレイアウトとの互換出力を検証するとき。
|
- 再開条件: 既存コミュニティレイアウトとの互換出力を検証するとき。
|
||||||
- 完了条件: 実データのキーを共通キーとバリアント別のPHYキーに対応づけ、全体の `order` から各レイアウトの要求順を取捨で再現できるか確認する。
|
- 完了条件: 実データのキーを共通キーとバリアント別のPHYキーに対応づけ、全体の `order` から各レイアウトの要求順を取捨で再現できるか確認する。
|
||||||
再現できないものが残る場合は、対応範囲と扱いを決める。
|
再現できないものが残る場合は、対応範囲と扱いを決める。
|
||||||
|
|
||||||
|
## MAP
|
||||||
|
|
||||||
|
### MAP-P-4 ON/OFF以外の入力への割り当て
|
||||||
|
|
||||||
|
- 関連仕様: [MAPレイヤー](../MAPレイヤー.md)「MAPデータと他レイヤーの関係」、[PHYレイヤー](../PHYレイヤー.md)「部品ノード」
|
||||||
|
- 未決事項: ロータリーエンコーダの回転のように、ON/OFFのキーではない入力へ割り当てる方法。
|
||||||
|
MAPはPHYのキーIDを参照するが、エンコーダはPHYで部品ノードとして置かれる。
|
||||||
|
参照先の種類、入力ごとの割り当て先(回転方向など)、VIAでの読み書きの対象にするかが未定。
|
||||||
|
アナログ値の解釈の所属は[全体方針のP-1](../keyboard-design-layers.md#p-1-アナログ値の解釈をどの層が持つか)で扱い、この項目とは分ける。
|
||||||
|
- 保留できる理由: キーへの割り当てと実機との読み書きは、キー以外の入力を扱わなくても実装できる。
|
||||||
|
- 再開条件: エンコーダ等を載せたキーボードの割り当てをMAPで扱うとき。
|
||||||
|
- 完了条件: 対象とする入力の種類と、MAPからの参照方法・保存形式をユーザーが決め、VIAで読み書きする場合は必要なコマンドを確認する。
|
||||||
|
|
||||||
|
### MAP-P-5 キーコードを表示するOS配列
|
||||||
|
|
||||||
|
- 関連仕様: [MAPレイヤー](../MAPレイヤー.md)「持たないもの」、[全体方針のIMEレイヤー](../keyboard-design-layers.md#5-imeレイヤー-入力変換)
|
||||||
|
- 未決事項: MAPエディタがキーコードをどのOS配列の文字で表示するか。IMEレイヤーの情報を使うか。
|
||||||
|
少なくともUS/JISの切り替えは欲しい。利用者が増えれば他言語への対応も求められる。
|
||||||
|
- 保留できる理由: キーコードの割り当てと実機との読み書きは、表示に使うOS配列と独立して実装できる。
|
||||||
|
- 再開条件: MAPエディタの表示を実装するとき、またはIMEレイヤーの仕様を検討するとき。
|
||||||
|
- 完了条件: 表示に使うOS配列の指定方法と置き場所、IMEレイヤーとの関係をユーザーが決める。
|
||||||
|
|||||||
@@ -646,10 +646,12 @@ ELC・IDX・MAPはどれもPHYを参照する。ELCはIDXを参照せず、MAP
|
|||||||
"$defs": {
|
"$defs": {
|
||||||
"layer": {
|
"layer": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["id", "name", "keymap"],
|
"required": ["name", "keymap"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"id": { "type": "integer", "minimum": 0 },
|
"name": {
|
||||||
"name": { "type": "string" },
|
"type": "string",
|
||||||
|
"description": "Layer identifier, unique within the MAP. Layer order is the array order"
|
||||||
|
},
|
||||||
"keymap": {
|
"keymap": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
|
|||||||
Reference in New Issue
Block a user