chore: Markdownのインデント幅を4に固定し、リストの継続行をスペース4つに揃える
継続行がスペース2つだと、VS Codeがインデント幅を2と自動判定する。 .vscode/settings.json でMarkdownの自動判定を切って幅4に固定し、 既存の継続行もリストの記号から4つ下げた位置に揃える。 変更したファイルに markdownlint --fix をかけた分(journalのURL囲みと空行)も含む。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
This commit is contained in:
@@ -23,7 +23,7 @@ ERROR があれば終了コード 1。存在しない引数のファイルもERR
|
||||
検出する項目:
|
||||
|
||||
| 種別 | 内容 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| ERROR | 本文の `[推測:P-n]` に対応する `## 未確認事項` の項目がない |
|
||||
| ERROR | 本文の推測タグに対応する項目に `- 格上げ条件:` の内容がない |
|
||||
| ERROR | タグのない未確認事項に `- 格上げ条件:` または `- 完了条件:` の内容がない |
|
||||
|
||||
@@ -29,7 +29,7 @@ argument-hint: <ファイル名>
|
||||
各ブロック(見出し単位、または段落単位)を次のどれかに分ける。
|
||||
|
||||
| 分類 | 行き先 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| a. 採用した案 / 現在の設定 / 設計に影響する制約 | メインドキュメントに残す |
|
||||
| b. 裏取りの済んだ事実 | メインドキュメントに残す(文中のどこでもよい) |
|
||||
| c. 未確認の推測・未解決の問い | メインドキュメント末尾の `## 未確認事項` |
|
||||
|
||||
@@ -23,7 +23,7 @@ ERROR があれば終了コード 1。存在しない引数のファイルもERR
|
||||
検出する項目:
|
||||
|
||||
| 種別 | 内容 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| ERROR | 本文の `[推測:P-n]` に対応する `## 未確認事項` の項目がない |
|
||||
| ERROR | 本文の推測タグに対応する項目に `- 格上げ条件:` の内容がない |
|
||||
| ERROR | タグのない未確認事項に `- 格上げ条件:` または `- 完了条件:` の内容がない |
|
||||
|
||||
@@ -29,7 +29,7 @@ argument-hint: <ファイル名>
|
||||
各ブロック(見出し単位、または段落単位)を次のどれかに分ける。
|
||||
|
||||
| 分類 | 行き先 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| a. 採用した案 / 現在の設定 / 設計に影響する制約 | メインドキュメントに残す |
|
||||
| b. 裏取りの済んだ事実 | メインドキュメントに残す(文中のどこでもよい) |
|
||||
| c. 未確認の推測・未解決の問い | メインドキュメント末尾の `## 未確認事項` |
|
||||
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"[markdown]": {
|
||||
"editor.detectIndentation": false,
|
||||
"editor.tabSize": 4,
|
||||
"editor.insertSpaces": true
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ PHY(物理配置) / ELC(電気配線) / IDX(キー識別) / MAP(キーマップ)
|
||||
## ドキュメント地図
|
||||
|
||||
| ファイル | 内容 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| `keyboard-design-layers.md` | レイヤー構造とツール分割方針(最上位) |
|
||||
| `PHYレイヤー.md` | PHY層の仕様 |
|
||||
| `ELCレイヤー.md` | ELC層の仕様 |
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
## 案の比較
|
||||
|
||||
| 案 | ライセンス | 流用できるもの | 書き直しになるもの |
|
||||
|---|---|---|---|
|
||||
| --- | --- | --- | --- |
|
||||
| ijprest KLE 改造 | 全権利留保。個別許諾要 | 描画, プロパティUI | データモデル, 編集操作。AngularJS 1.2.28/bower の保守 |
|
||||
| kle-ng 改造 | MIT | 描画(ISO形状含む), プロパティUI, undo, plate/PCB生成 | keyboard.ts ストア(62KB)と、それを直接書き換える移動・回転・履歴 |
|
||||
| 自作 | - | kle-serial(読), kle-serial2(読み書き) | 全部。ただし木モデルに合わせて最初から書ける |
|
||||
@@ -22,6 +22,7 @@
|
||||
## 検証ログ
|
||||
|
||||
### ijprest/keyboard-layout-editor
|
||||
|
||||
- LICENSE.md (ローカル HEAD d2945e5 / 本家 master 2026-09-18 取得、同文)
|
||||
- "Copyright(C) 2013-2018 by Ian Prest. All rights reserved."
|
||||
- "But it's not permissively licensed!"
|
||||
@@ -37,18 +38,21 @@
|
||||
- ローカルクローン(Documents/Dev/keyboard-layout-editor)の未コミット差分はPNG解像度調整と円形プロファイル追加のみ(ユーザー談)。本件と無関係
|
||||
|
||||
### kle-serial (ijprest)
|
||||
|
||||
- MIT, Copyright (c) 2013-2019 Ian Prest。npm @ijprest/kle-serial 0.15.1 (2019-06-30)
|
||||
- README: "This library currently only handles deserialization; the serialization code still needs to be ported."
|
||||
|
||||
### kle-serial2 (adamws, ijprest/kle-serial のフォーク)
|
||||
|
||||
- MIT。2025-08-22作成、最終push 2026-02-14、star 1
|
||||
- serialize あり。書き出しプロパティ: r rx ry x y c t ta g p sm sb st _r _rs a f fa w h w2 h2 x2 y2 l n d
|
||||
- serialize あり。書き出しプロパティ: r rx ry x y c t ta g p sm sb st _r_rs a f fa w h w2 h2 x2 y2 l n d
|
||||
- 出自の懸念: 元READMEは serialize を「KLE本体から移植予定」としていた。kle-serial2 の serialize 冒頭
|
||||
(current, cluster={r,rx,ry}, align=4, rows/row)は KLE serial.js:166- と構造が似る。
|
||||
ただしKLEフォーマット自体がこの構造を要求するので、流用の証拠にはならない。未確認
|
||||
→ 気になるなら書き出しは自前で書く(畳み込み後の絶対座標 → KLE行形式。rx/ry選択は PHY P-1 と一体)
|
||||
|
||||
### adamws/kle-ng
|
||||
|
||||
- MIT, Copyright (c) 2025 adamws。Vue 3 + Pinia + TS + Vite, bootstrap 5, three.js, ergogen, makerjs
|
||||
- 最終コミット 9eb350f 2026-09-03 (0.48.0)。star 267
|
||||
- 規模: TypeScript 2.97MB + Vue 0.99MB (GitHub languages API, テスト込み)
|
||||
@@ -60,13 +64,14 @@
|
||||
- ijprest のコードから派生したかは README に記載なし。未確認
|
||||
|
||||
### その他
|
||||
|
||||
- ymkn/keyboard-layout-studio: MIT, Vue3, SVG, KLE import, QMK keyboard.json / Vial 出力, matrix割り当て。star 4, 21 commits。回転・グループの記載なし
|
||||
- ローカル Documents/Dev/kbd-editor: Nuxt3 + Pinia, 2025-07, 約2,500行 (deserializer.ts, Key.vue, KeyPropEditor.vue 等)。ユーザーが以前自作を試みたもの。うまくいかなかった記憶あり(ユーザー談)。中身の確認は保留
|
||||
|
||||
## 規模見積もり(PHY Editor MVP, 1人・フルタイム換算の粗い目安)
|
||||
|
||||
| 項目 | 自作 | kle-ng改造 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| KLE読込 | 1-2日 (kle-serial) | 既存 |
|
||||
| KLE書出 + 畳み込み | 2-4日 | 畳み込みだけ新規 |
|
||||
| 木モデル・変換合成・逆変換 | 3-5日 | 3-5日 + 既存ストアへの差し込み |
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
## 案の比較
|
||||
|
||||
| 案 | 出典 | 問題 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| labelにIDを埋め込み、別ファイルのクラスターJSONと紐づけ | PHYレイヤー.md(旧) | VIAのlabelハックと同じ道。IDが長くなりラベルが見づらい |
|
||||
| `_beyondkle` メタデータ + labels[8] のハイブリッド | kle-compatibility.md | 同上。独自プロパティはKLEが保存時に落とす可能性 |
|
||||
| ゴーストキーにクラスター情報を格納 | kle-compatibility-analysis.md | 下記。所属情報が残らず、結局labelハックに戻る |
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
## 案の比較
|
||||
|
||||
| 項目 | 案 | 採否 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| d, g | PHYでキーとして持つ / 取り込み時に捨てる | 持つ |
|
||||
| 見た目属性 | 捨てる / 解釈せず保持して書き出し時に戻す | 保持。KLEをビュワーに使うとき色などが戻る方が実用的 |
|
||||
| ラベル | 捨てる / 参考情報として持つ | 持つ。照合に必要 |
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
## 案の比較
|
||||
|
||||
| 案 | 採否 |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| キャップ形状(l 等)からスイッチ位置を導出 | 不可。l でもずれないキーがある(昔のXFER) |
|
||||
| キーごとにオフセットを持つ | 採用 |
|
||||
| PHY以外の層(キーキャップ層など)で持つ | 不採用 |
|
||||
|
||||
@@ -14,7 +14,7 @@ PHYレイヤー.md の既存記述が2箇所でこれを前提にしていた。
|
||||
## 案の比較
|
||||
|
||||
| 案 | 過去のKLE資産 | 誤り |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| 自動推定 | 一発で階層が付く場合がある | 推定を外したときユーザーが直せない(直す手段=手動操作がないため) |
|
||||
| 手動の組み替え | 選択してまとめる手数がかかる | ユーザーの意図がそのまま入るので誤りがない |
|
||||
| 両方 | 同上 | 手動操作があれば推定の価値は初期値の提案に落ちる。初期値は小さく済む(下記) |
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
### per-key LEDの表現
|
||||
|
||||
| 案 | 位置 | 採否 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| キーのboolean | 持たない | ○ |
|
||||
| キーに追随する自動生成ノード | ノードが座標を持つ | × 座標に自由度がない |
|
||||
| ユーザーが1個ずつ置く | 持つ | × キー数ぶんの手作業 |
|
||||
@@ -21,7 +21,7 @@
|
||||
### 独立して置く部品
|
||||
|
||||
| 案 | 対象 | 採否 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| 部品ノード(汎用) | LED / OLED / エンコーダ / ネジ穴 / MCU など | ○ |
|
||||
| LEDノード専用 | LEDのみ | × 次の部品で同じ議論をやり直す |
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ PHYは端子配置(terminal) / ソケット方式(socket) / スイッチの向
|
||||
## 案の比較
|
||||
|
||||
| 論点 | 案 | 採否 |
|
||||
|---|---|---|
|
||||
| --- | --- | --- |
|
||||
| ブランド | KLEの sb 相当をPHYで持つ | 不採用 |
|
||||
| ブランド | 持たない | 採用 |
|
||||
| 種別の定義 | (a) スイッチ側の足の配置。MX-3pin と MX-5pin は別タイプ | 採用 |
|
||||
|
||||
@@ -66,10 +66,11 @@ ZMKの matrix transform `map`:
|
||||
引数の数え間違いでキーが1つずれるのが定番のバグであることも、この層が手書きである傍証になる。
|
||||
|
||||
出典:
|
||||
- https://docs.qmk.fm/reference_configurator_support
|
||||
- https://docs.qmk.fm/reference_info_json
|
||||
- https://zmk.dev/docs/config/layout
|
||||
- https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/porting_to_kmk.md
|
||||
|
||||
- <https://docs.qmk.fm/reference_configurator_support>
|
||||
- <https://docs.qmk.fm/reference_info_json>
|
||||
- <https://zmk.dev/docs/config/layout>
|
||||
- <https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/porting_to_kmk.md>
|
||||
|
||||
## 根拠: マトリクス順 ≠ キー番号順 の実物
|
||||
|
||||
@@ -96,7 +97,7 @@ QMKの分割も同じ構造。
|
||||
> Since the matrix scanning procedure operates on entire rows, it first populates the left half's rows,
|
||||
> then the right half's. Thus, the matrix as QMK views it has double the rows instead of double the columns.
|
||||
|
||||
出典: https://docs.qmk.fm/features/split_keyboard
|
||||
出典: <https://docs.qmk.fm/features/split_keyboard>
|
||||
|
||||
## 保存形式を `order: string[]` にした理由
|
||||
|
||||
|
||||
@@ -28,16 +28,16 @@ VIA向けのキーボード定義生成と、MAPの割り当ての読み書き
|
||||
公式文書・実装を参照した。実機による読み書きの検証は行っていない。
|
||||
|
||||
- RemapはWebHIDを使い、QMKのVIAクライアント向け機能へアクセスする。Workbenchにはソース編集・ビルド・書き込みもある。
|
||||
参照: https://github.com/remap-keys/remap#references
|
||||
参照: https://remap-keys.app/docs/workbench
|
||||
参照: <https://github.com/remap-keys/remap#references>
|
||||
参照: <https://remap-keys.app/docs/workbench>
|
||||
- VIAのキーボード定義には配置とmatrix座標の対応がある。QMKのVIA実装はキー単位の読み書きにlayer・row・colを使う。
|
||||
参照: https://caniusevia.com/docs/specification/
|
||||
参照: https://github.com/qmk/qmk_firmware/blob/master/quantum/via.c
|
||||
参照: <https://caniusevia.com/docs/specification/>
|
||||
参照: <https://github.com/qmk/qmk_firmware/blob/master/quantum/via.c>
|
||||
- Vialではタップダンスやコンボを実機へ保存できるが、枠数等にはビルド時の制約がある。
|
||||
参照: https://get.vial.today/manual/tap-dance.html
|
||||
参照: https://get.vial.today/manual/combos.html
|
||||
参照: <https://get.vial.today/manual/tap-dance.html>
|
||||
参照: <https://get.vial.today/manual/combos.html>
|
||||
- ZMK Studioは既存behaviorの割り当てを変更できるが、新しいbehavior定義等は対象外。実機に保存した変更とソース側の設定の扱いにも注意が必要。
|
||||
参照: https://zmk.dev/docs/features/studio
|
||||
参照: <https://zmk.dev/docs/features/studio>
|
||||
|
||||
## 未採用の提案との区別
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
## 結論
|
||||
|
||||
当面の対象ファームウェアはQMK。
|
||||
|
||||
- Dynamic: QMK本家のVIAプロトコルが公開する項目のみ
|
||||
- Static: QMK本家の公式機能のうちVIAで変更できないものは、Firmware Generatorで生成する対象
|
||||
- 非公式機能(Vial等のフォーク、XAP等のmaster以外のブランチ)は当面非対応
|
||||
@@ -29,10 +30,12 @@
|
||||
実機での検証はしていない。
|
||||
|
||||
### A. QMK本家 VIA
|
||||
参照: https://raw.githubusercontent.com/qmk/qmk_firmware/master/quantum/via.h
|
||||
|
||||
参照: <https://raw.githubusercontent.com/qmk/qmk_firmware/master/quantum/via.h>
|
||||
VIA_PROTOCOL_VERSION = 0x000D
|
||||
|
||||
command:
|
||||
|
||||
- 0x01 get_protocol_version
|
||||
- 0x02/0x03 get/set_keyboard_value
|
||||
- 0x01 uptime(get), 0x02 layout_options(get/set), 0x03 switch_matrix_state(get),
|
||||
@@ -57,8 +60,9 @@ MAPに関係するもの: キーコード、レイヤー数、エンコーダ、
|
||||
照明・オーディオはMAPの所有データ外(MAPレイヤー.md「持たないもの」)。
|
||||
|
||||
### B. Vial(フォーク、今回非対応)
|
||||
参照: https://raw.githubusercontent.com/vial-kb/vial-qmk/vial/quantum/vial.h
|
||||
参照: https://raw.githubusercontent.com/vial-kb/vial-qmk/vial/quantum/qmk_settings.c
|
||||
|
||||
参照: <https://raw.githubusercontent.com/vial-kb/vial-qmk/vial/quantum/vial.h>
|
||||
参照: <https://raw.githubusercontent.com/vial-kb/vial-qmk/vial/quantum/qmk_settings.c>
|
||||
VIAL_PROTOCOL_VERSION = 6
|
||||
|
||||
- keyboard_id、圧縮キーボード定義JSONの取得(get_size/get_def)
|
||||
@@ -75,7 +79,9 @@ VIAL_PROTOCOL_VERSION = 6
|
||||
- VialRGB(RGB Matrixエフェクト列挙・設定)。ソース未確認
|
||||
|
||||
### C. プロトコル外で実機上だけ変わるもの(Dynamicの定義外)
|
||||
|
||||
当初「すべてEEPROMに保存される」と書いたが誤り。確認結果:
|
||||
|
||||
- 保存されない(再起動で消える): ダイナミックマクロ(docs/features/dynamic_macros.md
|
||||
"lost when the keyboard is unplugged or otherwise rebooted")、DT_UP/DT_DOWN(docs/tap_hold.md "*not* persistent")
|
||||
- EEPROMに保存される(quantum/eeconfig.h): keymap config(Magic)、default layer、unicode mode、audio、backlight、
|
||||
@@ -86,4 +92,5 @@ VIAL_PROTOCOL_VERSION = 6
|
||||
初期化する。再ビルドして書き込むとDynamicの変更は消える前提になる。
|
||||
|
||||
### XAP
|
||||
|
||||
QMK公式の次世代プロトコルとして開発されていたが、masterには入っていない認識。未確認。
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## 案の比較
|
||||
|
||||
| 論点 | 当初の提案(人との議論) | Claude | Codex | 採用 |
|
||||
|---|---|---|---|---|
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 名前 | SYS | HOST/HST | SYS → 最終的にHOST/HSTに同意 | HST |
|
||||
| 識別子 | WIN-JAP (OS×言語) | OS×配列の構造 | OS×配列×入力方式+プロファイル名 | OS×配列(+入力方式) |
|
||||
| 範囲 | OS・言語ごとのキーの振る舞い・表示 | ホストの解釈の記述 | 意図を環境ごとの出力に変換、まで候補 → 最終的に「対応関係を提供、変更はしない」 | 記述のみ |
|
||||
|
||||
@@ -53,7 +53,7 @@ data/constants/keycodes/*.hjson を 0.0.1〜0.0.9 の順にマージして得た
|
||||
| 0x7400–0x743F | QK_JOYSTICK | ボタン0–31 |
|
||||
| 0x7440–0x747F | QK_PROGRAMMABLE_BUTTON | 1–32 |
|
||||
| 0x7480–0x74BF | QK_AUDIO | Audio/Clicky/Music 15件 |
|
||||
| 0x74C0–0x751F | QK_STENO | 0.0.9で拡張・改名(STN_* → QK_STENO_* / ST_*、旧名はエイリアス) |
|
||||
| 0x74C0–0x751F | QK_STENO | 0.0.9で拡張・改名(STN_*→ QK_STENO_* / ST_*、旧名はエイリアス) |
|
||||
| 0x7700–0x777F | QK_MACRO | QK_MACRO_0–31(名前付き)。VIA/keymap.jsonのマクロ |
|
||||
| 0x7780–0x77BF | QK_CONNECTION | 出力先切替(USB/2.4GHz/BT)、BTプロファイル1–5等15件 |
|
||||
| 0x77C0–0x77FF | QK_COMMUNITY_MODULE | Community Modules用 |
|
||||
@@ -69,6 +69,7 @@ Key Lock、One Shot on/off/toggle、Key Override on/off/toggle、Secure 4、Dyna
|
||||
Autocorrect 3、Tri Layer Lower/Upper、Repeat/Alt Repeat、Layer Lock。
|
||||
|
||||
補足:
|
||||
|
||||
- 20250831で旧RGB・マウスの非推奨キーコードを削除(#25444)。
|
||||
- VIAはキーマップを16bit値で読み書きするため、上のどの値もキーへ書ける。ファームウェアで無効な機能の値は何もしない。
|
||||
|
||||
@@ -147,6 +148,7 @@ QMK本家VIAにはこれらを読み出すコマンドがない(9/23調査の再
|
||||
## VIA 0x000D の読み書き範囲(0.34.4で再確認)
|
||||
|
||||
9/23の journal(qmk-dynamic-scope)と同じコマンド構成。差分・補足:
|
||||
|
||||
- `id_switch_matrix_state` は既定で0を返す(上記)。
|
||||
- `id_eeprom_reset` は `VIA_EEPROM_ALLOW_RESET` 定義時のみ有効。
|
||||
- エンコーダは `ENCODER_MAP_ENABLE` 時のみ。
|
||||
@@ -158,5 +160,5 @@ QMK本家VIAにはこれらを読み出すコマンドがない(9/23調査の再
|
||||
- 機能一覧: docs/_sidebar.json、builddefs/generic_features.mk の GENERIC_FEATURES。
|
||||
- キーコード: data/constants/keycodes/keycodes_*.hjson をバージョン順にマージ。
|
||||
- 変更点: docs/ChangeLog/20250223〜20260830。
|
||||
- VIA移行PR: https://github.com/qmk/qmk_firmware/pull/26315(develop向けDraft。VIA_EEPROM_MAGIC_ADDR 以外は後方互換を維持する方針と記載)
|
||||
- VIA移行PR: <https://github.com/qmk/qmk_firmware/pull/26315(develop向けDraft。VIA_EEPROM_MAGIC_ADDR> 以外は後方互換を維持する方針と記載)
|
||||
- 実機での検証はしていない。
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
- docs/ChangeLog/20260830.md(QMK 0.34.4):
|
||||
"upkeep of the VIA integration will transition to the VIA team" /
|
||||
"in a future release, the old VIA feature-based implementation is expected to be removed."
|
||||
- PR https://github.com/qmk/qmk_firmware/pull/26315 : develop向けDraft。追加ファイルは
|
||||
- PR <https://github.com/qmk/qmk_firmware/pull/26315> : develop向けDraft。追加ファイルは
|
||||
modules/qmk/via/{qmk_module.json, via.c, via.h, post_config.h, post_rules.mk}。
|
||||
qmk_module.json にバージョン欄なし。VIA_EEPROM_MAGIC_ADDR 以外は後方互換を維持すると記載。
|
||||
- 0.34.4時点のVIAは従来どおり quantum/via.c、VIA_PROTOCOL_VERSION 0x000D。
|
||||
|
||||
Reference in New Issue
Block a user