From fd21d64bcf3a08c70ba75d217f74cb4a4637cc8a Mon Sep 17 00:00:00 2001 From: EwdErna Date: Tue, 6 Oct 2026 08:17:47 +0900 Subject: [PATCH] =?UTF-8?q?provisional:=20IDX=20Editor=E3=81=AE=E8=A1=8C?= =?UTF-8?q?=E3=81=A8=E5=88=97=E3=81=AE=E5=88=A4=E5=AE=9A=E8=A6=8F=E5=89=87?= =?UTF-8?q?=E3=81=A8=E3=80=81=E9=81=A9=E7=94=A8=E5=89=8D=E3=81=AE=E3=83=97?= =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC=E3=82=92=E6=B1=BA=E3=82=81?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - そろっている軸は座標でまとめ、ずれている軸は隣とのつながりでたどる(両方たどると循環する) - 隣り合う列の対応は1対1にする。誤った1か所で2行が合体するため - 縦長キーは上端の行、横長キーは左端の列に属させ、外れたら手で直す - 適用前に判定した行を表示し、列ごとに↑/↓で1行ずらして直せるようにする - なぞって連番を振る操作は後回しにし、キー列から連番で並べ直す操作を共通の入り口にする Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XGuRxrp4fZwztsK45G21jt --- provisional/idx-editor-feedback.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/provisional/idx-editor-feedback.md b/provisional/idx-editor-feedback.md index 085751f..e9682df 100644 --- a/provisional/idx-editor-feedback.md +++ b/provisional/idx-editor-feedback.md @@ -22,16 +22,33 @@ - 向き: 通常 / 左右逆。半身ごとに指定できる(右手側だけ逆、など) - 既存の定義(QMK `keyboard.json` の `layout[]`、VIA定義、KLEのキー順)からの取り込みは、上の組み合わせとは別の操作にする。 既存基板の番号を変えずに引き継ぐためのもの。 -- 行の判定: 隣の列のキーのうち、y座標が最も近いキーを同じ行とする。素直なカラムスタッガードはこれで扱える。 +- 行と列の判定: そろっている軸は座標でまとめ、ずれている軸は隣とのつながりでたどる。 + 行と列の両方をつながりでたどろうとすると、互いが互いを必要として循環するため。 + - カラムスタッガード: 列はx座標でまとめる。行は、隣の列のキーのうちy座標が最も近いキーを同じ行とする。 + ロウスタッガードは縦横を入れ替える。格子配列はどちらでもよい。どちらの軸がそろっているかは座標から判定する。 - 上から何番目かで数える方式は、端の列だけ行数が違う配列でずれる。 - - 回転した親指クラスターなどで判定が合わない場合は、選択範囲への適用とドラッグでの並べ替えで調整する。 + - 隣り合う列の間の対応は1対1にする。行は対応のつながりで決まるため、1か所の誤りで2つの行が1つに合体する + (同じ列の2キーが、隣の列の同じキーに対応した場合)。 + - 縦長のキー(縦2U、ISO Enter)は上端の行、横長のキー(スペースバーなど)は左端の列に属させる。外れたら手で直す。 + - 左右の半身の間の隙間も、隣り合う列の1組として対応付ける。左右対称の配置なら内側の列同士のy座標がそろうので、これで行が対応する。 + - 判定は完全でなくてよい。プリセットは `order` に一度書き込むだけで、外れても直せばよい。 + 強いスタッガードで列ごと1行ずれる、回転した親指クラスター、左右非対称の配置などは、下のプレビューで直す。 +- 適用前のプレビュー: 判定した行(列)をキャンバス上に表示し(同じ行を線で結ぶ、色分けする、など)、外れに気づけるようにする。 + 列を選んで↑/↓で行の割り当てを1行ずらせる。割り当てはこの操作中だけの状態で、保存しない。 + - 適用後に `order` 上でずらす方式は取らない。`order` はどこからどこまでが1行分かを持たないため。 + - 残りの細かい修正は、選択範囲への適用とドラッグでの並べ替えで行う。 + +### なぞって連番を振る操作 + +- 後回しにする。プリセット・選択範囲への適用・ドラッグで足りないのは、行がはっきりしない配置(放射状など)に限られる見込み。 +- 入り口として、「キーの列を受け取り、先頭キーの位置から連番で並べ直す」を共通の基本操作にする。 + プリセットは走査でキーの列を作って渡す。なぞる操作や「順にクリックして番号を振る」は、後から同じ操作に乗せる。 - 排他キー: `order` では既に別々の要素であり(`IDXレイヤー.md`「レイアウトバリアント」)、選択後に同時には残らない。 そのため排他キー同士の前後はどの出力番号にも影響せず、決め方は任意でよい(保存データの差分が安定すれば足りる)。 出力番号に効くのは、複数行にまたがるキー(縦2U、ISO Enter)を共通キーに対してどの行に置くか。下の「欠番」の項目と同じ問題として扱う。 ## 要検討 -- なぞって連番を振る操作。なぞり始めたキーの位置から連番にする。複雑な配置で役立ちそうだが、実装は重い。 - バリアント選択のドロップダウンの位置。左上に置く案。 - 欠番(番号の飛び)を作れないこと。現行仕様では、出力番号は `order` 内の位置で表し、飛ばない(`IDXレイヤー.md`「保存形式」)。 - 場面: 4x4の右下(11, 15)をoption A、縦2UキーをBにする。2Uを `order` の末尾に置くと、Bでは12〜14が1つずつ前へずれる。