From 1a443c562debdf6f42c75e64799089a6c2c5cfcb Mon Sep 17 00:00:00 2001 From: EwdErna Date: Thu, 24 Sep 2026 22:56:12 +0900 Subject: [PATCH] =?UTF-8?q?plan:=20=E6=A4=9C=E8=A8=BC=E7=94=A8=E3=82=B5?= =?UTF-8?q?=E3=83=B3=E3=83=97=E3=83=AB=E3=82=92=E5=AE=9F=E5=9C=A8=E3=81=AE?= =?UTF-8?q?=E3=82=AD=E3=83=BC=E3=83=9C=E3=83=BC=E3=83=89=E3=81=AEKLE=20JSO?= =?UTF-8?q?N=E3=81=A7=E5=AE=9A=E3=82=81=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 60%はCr0wn60、分割はcrkbdとjisplit89、分割+バリアントはKyriaとIris Rev.7、マクロパッドは自作の4x4 - Cr0wn60(MIT、作者本人)と4x4は samples/kle/ に置く - the-via/keyboardsのもの(GPL-3.0)はコピーせず、コミット9e3e9f4とパスだけを記録する - 旧リストのErgonomic layoutはcrkbdとKyriaで扱う Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017W6AsoJYTiN3bnxvSMS87f --- implementation-plan.md | 28 +++++- samples/kle/cr0wn60.json | 173 ++++++++++++++++++++++++++++++++++ samples/kle/macropad-4x4.json | 6 ++ 3 files changed, 203 insertions(+), 4 deletions(-) create mode 100644 samples/kle/cr0wn60.json create mode 100644 samples/kle/macropad-4x4.json diff --git a/implementation-plan.md b/implementation-plan.md index aab3c70..24b5ecd 100644 --- a/implementation-plan.md +++ b/implementation-plan.md @@ -13,10 +13,30 @@ PHYの正本は相対座標の木だが、既存エディタ(KLE, kle-ng)の移 ### テストケース -1. **60% ANSI** - 標準的なレイアウト -2. **Split keyboard** - 左右分離型 -3. **Ergonomic layout** - カラムスタッガード + 回転 -4. **Macro pad** - シンプルな4x4 +入力はKLE JSONとし、取り込みを通してPHYへ変換する。 + +| ケース | サンプル | 主に確かめること | +|---|---|---| +| 60% | Cr0wn60 | 行スタッガード、幅の違うキー、左右対称配列の中央の隙間 | +| 分割 | crkbd、jisplit89 | 左右の分離、カラムスタッガードと回転した親指キー(crkbd)、キー数の多いJIS配列の分割(jisplit89) | +| 分割 + バリアント | Kyria、Iris Rev.7 | 回転したクラスター内のバリアント(Kyria)、部品(エンコーダ)を含む3択のバリアント(Iris Rev.7) | +| マクロパッド | 4x4 | 最小構成 | + +リポジトリに置くサンプルは `samples/kle/` にある。 + +- `cr0wn60.json`: [EwdErna/Cr0wn60](https://github.com/EwdErna/Cr0wn60) の `keyboard-layout.json`(919cc9e、MIT) +- `macropad-4x4.json`: このリポジトリで作成 + +その他はコピーせず、[the-via/keyboards](https://github.com/the-via/keyboards)(GPL-3.0)から、コミット 9e3e9f4 の次のファイルの `layouts.keymap` を取得して使う。 + +- crkbd: `src/crkbd/crkbd.json` +- jisplit89: `src/jisplit89/jisplit89.json` +- Kyria: `src/splitkb/kyria.json` +- Iris Rev.7: `src/keebio/iris/iris-rev7.json` + +VIAの定義に含まれるKLE JSONは、ラベルにキー名ではなくマトリクス位置(`行,列`)を持つ。 +バリアントは、ラベルの別の欄に `選択肢の番号,候補の番号` の形で示す。 +キー名のラベルによる照合の検証には使えない。ELCの接続先とバリアントの検証に使う。 ### データ例 diff --git a/samples/kle/cr0wn60.json b/samples/kle/cr0wn60.json new file mode 100644 index 0000000..bffa679 --- /dev/null +++ b/samples/kle/cr0wn60.json @@ -0,0 +1,173 @@ +[ + [ + { + "p": "DCS R1" + }, + "Esc", + { + "x": 0.25 + }, + "!\n1", + "@\n2", + "#\n3", + "$\n4", + "%\n5", + { + "x": 1 + }, + "^\n6", + "&\n7", + "*\n8", + "(\n9", + ")\n0", + "_\n-", + { + "x": 0.75 + }, + "+\n=" + ], + [ + { + "p": "DCS R2", + "a": 0, + "w": 1.5 + }, + "Tab\n\n\n\n\n1.5", + { + "a": 4 + }, + "Q", + "W", + "E", + "R", + "T", + { + "x": 0.5 + }, + "Y", + "U", + "I", + "O", + "P", + "{\n[", + { + "x": 0.5, + "a": 0, + "w": 1.5 + }, + "Backspace\n\n\n\n\n1.5" + ], + [ + { + "p": "DCS R3", + "w": 1.75 + }, + "Ctrl\n\n\n\n\n1.75", + { + "a": 4 + }, + "A", + "S", + "D", + "F", + "G", + "H", + "J", + "K", + "L", + ":\n;", + "\"\n'", + { + "a": 0, + "w": 2.25 + }, + "Enter\n\n\n\n\n2.25" + ], + [ + { + "p": "DCS R4", + "w": 1.25 + }, + "Shift\n\n\n\n\n1.25", + { + "x": 0.25, + "a": 4 + }, + "Z", + "X", + "C", + "V", + "B", + { + "x": 0.5 + }, + "N", + "M", + "<\n,", + ">\n.", + "?\n/", + "|\n\\", + { + "x": 0.25, + "a": 0, + "w": 1.75 + }, + "Shift\n\n\n\n\n1.75" + ], + [ + { + "x": 1.25, + "w": 1.25 + }, + "Win\n\n\n\n\n1.25", + { + "w": 1.25 + }, + "Alt\n\n\n\n\n1.25", + { + "x": 6.5, + "w": 1.25 + }, + "Alt\n\n\n\n\n1.25", + { + "w": 1.25 + }, + "Ctrl\n\n\n\n\n1.25" + ], + [ + { + "r": 180, + "rx": 4.5, + "ry": 4.5, + "y": -0.5, + "x": -0.25, + "a": 4 + }, + "\n\n\nFn" + ], + [ + { + "rx": 6.75, + "y": -0.5, + "x": -2.5, + "p": "DCS SPACE", + "a": 3, + "w": 2.25 + }, + "\n\n\n\n\n2.25", + { + "w": 2.25 + }, + "\n\n\n\n\n2.25" + ], + [ + { + "rx": 9.5, + "y": -0.5, + "x": -0.75, + "p": "DCS R4", + "a": 4 + }, + "\n\n\nCode" + ] +] \ No newline at end of file diff --git a/samples/kle/macropad-4x4.json b/samples/kle/macropad-4x4.json new file mode 100644 index 0000000..10ad757 --- /dev/null +++ b/samples/kle/macropad-4x4.json @@ -0,0 +1,6 @@ +[ + ["7", "8", "9", "/"], + ["4", "5", "6", "*"], + ["1", "2", "3", "-"], + ["0", ".", "Enter", "+"] +]