idx: コミュニティレイアウトの並びが取捨だけでは得られない場合を記録する

QMKの実データで、コミュニティレイアウトとの173組のうち30組(すべてISO系)が
`LAYOUT_all` の並びの部分列にならない。同じマトリクス位置がレイアウトによって
別の物理キーになり、残ったキーの読み順が変わるため。
埋め方は未定として未確認事項に残す。

Journal: journal/2026-09-21-community-layout-order.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
This commit is contained in:
2026-09-21 19:01:00 +09:00
co-authored by Claude Opus 5
parent ea7bf01e72
commit d7a0f99cb4
2 changed files with 121 additions and 7 deletions
+10 -7
View File
@@ -53,7 +53,10 @@ row / col 自体がELCの正本ではなく出力時の派生情報である。
PHYがレイアウトバリアントを持つ場合も、キー番号の空間は1つとする。バリアントごとにIDXを分けない。
キー番号は公開インターフェースであり、どの空間のものかを断らずに解釈できなければならない。
特定のレイアウト向けの並びは、選んだバリアントに属さないキーを落として得られる派生情報として扱う [推測:P-1]。
特定のレイアウト向けの並びは、選んだバリアントに属さないキーを落として得る。
ただしこれだけでは足りない場合がある。QMKのコミュニティレイアウトでは、同じマトリクス位置が
レイアウトによって別の物理キーになり(ANSIのバックスラッシュとISOの `#~`)、残ったキーの読み順が変わる。
ISO系で引数順が一致しない。
排他なキー同士は、同じキー番号を共有できる。`order` の要素にキーIDの配列を書くと、
その位置の番号を配列内のキーで共有する。
@@ -109,10 +112,10 @@ type IDX = {
## 未確認事項
### P-1 特定レイアウト向けの並びが既存の慣習と一致するか
### P-1 一致しないコミュニティレイアウトの並びをどう与えるか
- 位置づけ: 本文「レイアウトバリアント」が前提にしている
- 現状の認識: `order` からキーを落として得た並びが、QMKのコミュニティレイアウト(`LAYOUT_60_ansi` など)が
要求する引数順と一致するかを確認していない。一致しないなら、レイアウトごとの並びを別に持つ必要が出る
- 格上げ条件: 実在のキーボードの `LAYOUT_all` とコミュニティレイアウトのマクロを読み、
前者から後者がキーの取捨だけで得られるかを確認する
- 位置づけ: 本文「レイアウトバリアント」の残余。一致しない場合があることは確認済み
- 現状の認識: QMKの実データで、コミュニティレイアウトとの173組のうち30組(すべてISO系)が
`order` からの取捨では得られない。並べ替えの規則を与えるか、レイアウトごとの並びを持つかが未定。
後者は「レイアウトごとに別のIDXを持つ」として一度落としている
- 格上げ条件: 埋め方をユーザーが決める