- 種類ごとのプリセットをやめ、対象(全体/選択範囲)・走査・向きの3軸で表す - 既存定義(QMK layout[]・VIA・KLE)からの取り込みは別の操作にする - 行は隣の列で最も近いy座標のキーとつなげて判定する - 排他キー同士の前後は出力番号に影響しないので任意とする Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XGuRxrp4fZwztsK45G21jt
4.2 KiB
4.2 KiB
IDX Editor モックの所感(画面仕様の入力)
モックを触った所感と、それを受けた議論の整理。仕様ではない。 画面仕様を一から作るときの入力にし、仕様へ反映したら消す。
方向が合意できたもの
並べ替え
- リストを主な操作の場にしない。並べ替えはキャンバス上のキーをドラッグ&ドロップして行う。
- ドロップで「挿入」と「入れ替え」を区別できるようにする。
- 挿入: 位置nのキーを、位置iとi+1の間にドロップする。
- n > i+1 のとき、キーは位置i+1に入り、元のi+1〜n-1は1つずつ後ろへずれる。
- n < i のとき、キーは位置iに入り、元のn+1〜iは1つずつ前へずれる(通常のリストの移動と同じ)。
- 入れ替え: 位置iのキーを位置nのキーの上にドロップすると、2つを入れ替える。他のキーは動かない。
- 挿入: 位置nのキーを、位置iとi+1の間にドロップする。
プリセット(一括の並べ替え)
- 種類ごとに個別のプリセットを作らず、3つの軸の組み合わせで表す。
- 対象: 全体 / 選択範囲
- 走査: 行優先 / 列優先 / 半身ごと(左手側を先に並べる) / 行ごとに左右交互 / マトリクス順(ELCのrow → col)
- 向き: 通常 / 左右逆。半身ごとに指定できる(右手側だけ逆、など)
- 既存の定義(QMK
keyboard.jsonのlayout[]、VIA定義、KLEのキー順)からの取り込みは、上の組み合わせとは別の操作にする。 既存基板の番号を変えずに引き継ぐためのもの。 - 行の判定: 隣の列のキーのうち、y座標が最も近いキーを同じ行とする。素直なカラムスタッガードはこれで扱える。
- 上から何番目かで数える方式は、端の列だけ行数が違う配列でずれる。
- 回転した親指クラスターなどで判定が合わない場合は、選択範囲への適用とドラッグでの並べ替えで調整する。
- 排他キー:
orderでは既に別々の要素であり(IDXレイヤー.md「レイアウトバリアント」)、選択後に同時には残らない。 そのため排他キー同士の前後はどの出力番号にも影響せず、決め方は任意でよい(保存データの差分が安定すれば足りる)。 出力番号に効くのは、複数行にまたがるキー(縦2U、ISO Enter)を共通キーに対してどの行に置くか。下の「欠番」の項目と同じ問題として扱う。
要検討
- なぞって連番を振る操作。なぞり始めたキーの位置から連番にする。複雑な配置で役立ちそうだが、実装は重い。
- バリアント選択のドロップダウンの位置。左上に置く案。
- 欠番(番号の飛び)を作れないこと。現行仕様では、出力番号は
order内の位置で表し、飛ばない(IDXレイヤー.md「保存形式」)。- 場面: 4x4の右下(11, 15)をoption A、縦2UキーをBにする。2Uを
orderの末尾に置くと、Bでは12〜14が1つずつ前へずれる。 「2Uを末尾にする」と「バリアント外のキーの番号をずらさない」を両立するには、11を欠番にするしかない。 - 番号を詰める方式は2026-09-22に決めた(
journal/2026-09-22-idx-variant-output.md)。番号の互換性はバリアントを選んだ構成ごとに扱い、 別の構成で同じ番号が同じキーを指すことは保証しない。ただし、そのときの例は1対1の排他キー(ANSI/ISO)だけだった。 - 今の仕様のままなら、2Uを11の位置に置けば12〜14はずれない(QMKのテンキーの+キーも上端の位置に置く慣習)。
- 構成をまたいで番号が揃っていてほしい利用場面(手書きのkeymap.cを共有する、など)があるかを確認してから扱いを決める。
- 場面: 4x4の右下(11, 15)をoption A、縦2UキーをBにする。2Uを
モックの実装上の問題
作り直しで解消する前提で、原因の記録だけ残す。
- バリアント選択が見つけにくい: 右ペインの「出力構成」見出しの下、キーボード表示の上にあり、並びを編集するリストから離れている。