provisional: PHY Editorのキー割り当ての叩き台を置く

KLEから移ってくる利用者を想定し、KLEの割り当てを土台にした。
Shift+矢印はサイズ変更(KLEと同じ)。移動の刻みは修飾キーでなくグリッドの状態で持ち、ドラッグと共有する。
回転はPgUp/PgDnでPgUpが正方向。4方向で隣のキーへ移る操作は当面作らず、Tabの順送りで試す。
キーの判定は記号・文字をevent.key、Shift+数字をevent.codeで行う基準を足した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABrbf2SmjALke8YHxqeLuC
This commit is contained in:
2026-10-04 18:47:26 +09:00
co-authored by Claude Opus 5.5
parent c5ac41b1cc
commit 3894df8069
3 changed files with 90 additions and 56 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
| [decisions.md](decisions.md) | 仮決定の本体。範囲と技術 / 明示的な未決事項 / 暗黙の未決事項 | | [decisions.md](decisions.md) | 仮決定の本体。範囲と技術 / 明示的な未決事項 / 暗黙の未決事項 |
| [discrepancies.md](discrepancies.md) | 作業中に見つけたドキュメント間の食い違い。メインドキュメントは直していない | | [discrepancies.md](discrepancies.md) | 作業中に見つけたドキュメント間の食い違い。メインドキュメントは直していない |
| [phy-editor-feedback.md](phy-editor-feedback.md) | PHY Editorモックの所感。画面仕様を作り直すときの入力 | | [phy-editor-feedback.md](phy-editor-feedback.md) | PHY Editorモックの所感。画面仕様を作り直すときの入力 |
| [phy-editor-keybindings.md](phy-editor-keybindings.md) | PHY Editorのキー操作の候補一覧と、モディファイアを振る基準 | | [phy-editor-keybindings.md](phy-editor-keybindings.md) | PHY Editorのキー割り当ての叩き台と、モディファイアを振る基準 |
| [idx-editor-feedback.md](idx-editor-feedback.md) | IDX Editorモックの所感。画面仕様を作り直すときの入力 | | [idx-editor-feedback.md](idx-editor-feedback.md) | IDX Editorモックの所感。画面仕様を作り直すときの入力 |
| [elc-editor-feedback.md](elc-editor-feedback.md) | ELC Editorモックの所感。画面仕様を作り直すときの入力 | | [elc-editor-feedback.md](elc-editor-feedback.md) | ELC Editorモックの所感。画面仕様を作り直すときの入力 |
| [map-editor-feedback.md](map-editor-feedback.md) | MAP Editorモックの所感とRemapの現状。画面仕様を作り直すときの入力 | | [map-editor-feedback.md](map-editor-feedback.md) | MAP Editorモックの所感とRemapの現状。画面仕様を作り直すときの入力 |
+3 -3
View File
@@ -36,6 +36,7 @@
- 移動・サイズ変更・削除をキーボードで操作できる。削除は参照の確認(T-15)を省かない。確認は操作した場所の近くに出す。 - 移動・サイズ変更・削除をキーボードで操作できる。削除は参照の確認(T-15)を省かない。確認は操作した場所の近くに出す。
- 矢印キーでの移動方向は、直近の親(クラスター・VariantGroup)の軸方向。ドラッグと同じ。 - 矢印キーでの移動方向は、直近の親(クラスター・VariantGroup)の軸方向。ドラッグと同じ。
- 移動の刻みはグリッドの状態として持ち、矢印キーとドラッグが同じ刻みに従う。修飾キーで刻みを変えない。
- 複数選択に対して回転以外の操作(移動など)もできる。 - 複数選択に対して回転以外の操作(移動など)もできる。
- 複数キーを共通の中心で回したいなら、それはクラスターをなす。選択ノードを個別に回転する操作はそれとして残す。 - 複数キーを共通の中心で回したいなら、それはクラスターをなす。選択ノードを個別に回転する操作はそれとして残す。
@@ -54,8 +55,7 @@
- 長押しの詳細: 選択先が上がる間隔、インジケータの見た目、長押しとドラッグの切り分け(長押しで階層を選んでからドラッグに移れるか)。 - 長押しの詳細: 選択先が上がる間隔、インジケータの見た目、長押しとドラッグの切り分け(長押しで階層を選んでからドラッグに移れるか)。
- 個別回転とクラスター化してからの回転のどちらを主な操作にするか。 - 個別回転とクラスター化してからの回転のどちらを主な操作にするか。
- ドラッグのスナップの細かさ。0.25U刻みはズーム1倍で16pxずつ飛び、細かい調整がしづらい。キーボード操作で足りるなら不要。 - グリッドの刻みの候補値。0.25U刻みはズーム1倍で16pxずつ飛び、ドラッグでの細かい調整がしづらい。
- 矢印キーの刻み幅(修飾キーで粗く・細かく、など)。
- どこまでアイコンのみのボタンにするか。 - どこまでアイコンのみのボタンにするか。
- ホイールでのカーソル中心ズーム、ホバー時の強調(モックに無い。未議論)。 - ホイールでのカーソル中心ズーム、ホバー時の強調(モックに無い。未議論)。
@@ -63,7 +63,7 @@
試さなくても決められる、または試す前に決めておく必要があるもの。 試さなくても決められる、または試す前に決めておく必要があるもの。
- キー割り当て。候補の一覧とモディファイアを振る基準は [phy-editor-keybindings.md](phy-editor-keybindings.md)。 - キー割り当て。叩き台と残っている問いは [phy-editor-keybindings.md](phy-editor-keybindings.md)。
- UIでの呼び方。PHY・ELCなどのレイヤー名は設計上の仮称で、画面に出すかどうかは別途決める(「PHYの木」→「階層」など)。 - UIでの呼び方。PHY・ELCなどのレイヤー名は設計上の仮称で、画面に出すかどうかは別途決める(「PHYの木」→「階層」など)。
- コピー&ペースト(モックに無い。未議論)。新しいIDの振り方と他の層からの参照の扱いはデータモデルの問いで、 - コピー&ペースト(モックに無い。未議論)。新しいIDの振り方と他の層からの参照の扱いはデータモデルの問いで、
メインドキュメント側に置くべきものかもしれない。 メインドキュメント側に置くべきものかもしれない。
+86 -52
View File
@@ -1,88 +1,102 @@
# PHY Editor のキー操作(検討用) # PHY Editor のキー操作(検討用)
キーで呼べるとよさそうな操作の一覧と、モディファイアを振るときの基準。**仕様ではない。** キー割り当ての叩き台と、モディファイアを振るときの基準。**仕様ではない。**
[phy-editor-feedback.md](phy-editor-feedback.md) の要検討を詰めるための材料。キー割り当ては未決。 [phy-editor-feedback.md](phy-editor-feedback.md) の要検討を詰めるための材料。
## 操作一覧 ## 決めた方針
「メモ」の割り当ては一般的な慣例か、議論に出た候補。決めたものではない。 - KLE の割り当てを土台にする。主な利用者は KLE から移ってくるため。KLE の割り当ては末尾の「参考」。
- Shift+矢印はサイズ変更(KLE と同じ)。キーのサイズは 0.25U 刻みで足りるので、サイズ変更に刻みの切り替えは要らない。
- 移動の刻みはグリッドの状態として持ち、矢印キーとドラッグが同じ刻みに従う。修飾キーで刻みを変えない。
- 画面上で隣にあるキーへ4方向で移る操作は当面作らない。Tab の順送りで足りるか試す。
### A. 選択を動かす(データは変わらない。方向があり、繰り返し押す) ## 割り当て案
| 操作 | メモ | Mac では Ctrl を Cmd に読み替える。1文字のキー(R・G・V など)は、キャンバスにフォーカスがあり入力欄にいないときだけ効く。
| --- | --- |
| 選択を外す | Esc(合意済み) |
| 親へ上がる | 長押しで親へ上がる操作のキーボード版。候補: Alt+Ctrl+↑ のような形(モディファイアは未定) |
| 子へ降りる | 上がる前に選んでいた子を覚えておけば、上下を往復できる |
| 兄弟へ順に移る | Tab / Shift+Tab にすれば、MAP Editor の Tab での入力ループと揃う |
| 画面上で隣にあるキーへ移る | 4方向。マウスを使わずに配置を詰める作業に使う |
| 全選択 | フォーカスモード中はそのクラスター内だけにするなど、範囲を決める必要がある |
| 同じ親を持つキーをすべて選ぶ | クラスターの組み替えは同じ親を持つノードに限るので、組み替えの準備に使える |
### B. 配置を変える(データが変わる。方向があり、量を持ち、繰り返し押す) ### A. 選択を動かす(データは変わらない)
| 操作 | 方向 | メモ | | 操作 | キー | メモ |
| --- | --- | --- | | --- | --- | --- |
| 移動 | 4方向 | 刻みは通常・粗い・細かい | | 選択を外す | Esc | 合意済み |
| サイズ(w/h) | 4方向 | 原点が左上なので、右と下が伸びる向き | | 親へ上がる / 子へ降りる | Alt+↑ / Alt+↓ | エクスプローラーの Alt+↑ と揃う。降りる先は、上がる前に選んでいた子 |
| 回転 | 2方向 | ±15°と、それより細かい刻み | | 兄弟へ順に移る | Tab / Shift+Tab | 親のローカル座標で行ごとに並べた順。MAP Editor の入力ループと揃う |
| スイッチの向き | 2方向 | 90°ずつ切り替える | | 同じ親を持つノードをすべて選ぶ | Ctrl+A | 選択がなければ、フォーカス先(フォーカス中でなければ最上位)の直下をすべて選ぶ。全選択を兼ねる |
| スイッチ位置のオフセット | 4方向 | 使う頻度は低い。数値入力で足りるかもしれない |
### B. 配置を変える(データが変わる。方向があり、繰り返し押す)
| 操作 | キー | メモ |
| --- | --- | --- |
| 移動 | ←↑↓→ | グリッドの刻み。方向は直近の親の軸方向(合意済み) |
| サイズ(w/h) | Shift+←↑↓→ | 0.25U 刻み。右と下が伸びる向き |
| 回転 | PgUp / PgDn | ±15°。PgUp が正方向。細かい角度は数値で入れる |
| スイッチの向き | R / Shift+R | 90° ずつ。KiCad の R(回転)と揃う |
| スイッチ位置のオフセット | なし | 数値入力で足りる |
### C. 構造を変える(データが変わる。1回で完結する) ### C. 構造を変える(データが変わる。1回で完結する)
| 操作 | メモ | | 操作 | キー | メモ |
| --- | --- | | --- | --- | --- |
| クラスターにする | よく使われる割り当ては Ctrl+G | | クラスターにする / 解除する | Ctrl+G / Ctrl+Shift+G | 慣例 |
| クラスターを解除する | よく使われる割り当ては Ctrl+Shift+G | | 1つ上の親へ出す | なし | 階層パネル・メニューから |
| 1つ上の親へ出す | | | VariantGroup にする / Variant を足す | なし | 頻度が低い |
| VariantGroup にする / Variant を足す | 頻度が低いので、メニューからで十分かもしれない |
### D. 作る・消す(データが変わる。1回で完結する) ### D. 作る・消す(データが変わる。1回で完結する)
| 操作 | メモ | | 操作 | キー | メモ |
| --- | --- | | --- | --- | --- |
| 削除 | Delete。他の層から参照されていないかの確認は省かない(合意済み) | | 削除 | Delete / Backspace | Mac のキーボードに Delete キーがないため両方。参照の確認は省かない(合意済み) |
| 複製 | Ctrl+D | | 複製 | Ctrl+D | |
| コピー・カット・ペースト | 要検討に載っている項目。新しい ID の振り方と、他の層からの参照の扱いは複製と同じ問題 | | コピー・カット・ペースト | Ctrl+C / Ctrl+X / Ctrl+V | キーだけ確保する。新しい ID と他の層からの参照の扱いは未議論 |
| キーを足す | 選択中のキーの隣に 1U を置く、など | | キーを足す | Ins | KLE と同じ |
### E. 表示(データは変わらず、保存もしない) ### E. 表示(データは変わらず、保存もしない)
| 操作 | メモ | | 操作 | キー | メモ |
| --- | --- | | --- | --- | --- |
| 全体表示 | 合意済み | | 全体表示 / 選択範囲にズーム | Shift+1 / Shift+2 | Figma と同じ。`code` で判定する |
| 選択範囲にズーム | | | ズームイン・アウト | `+` / `-` | Ctrl+± はブラウザのズームなので取らない |
| ズームイン・アウト、等倍 | | | フォーカスモードに入る・出る | Enter / Esc | 合意済み |
| フォーカスモードに入る・出る | Enter で入る、Esc で出る(合意済み) | | グリッドの刻みを切り替える | G / Shift+G | |
| 表示するバリアントを切り替える | 選んでいる VariantGroup の次の Variant へ送る | | 表示するバリアントを切り替える | V | 選んでいる VariantGroup の次の Variant へ送る |
| 表示のオン・オフ | ラベル、ゴースト、スイッチの位置と向き、グリッド。頻度は低い | | 表示のオン・オフ、階層パネルの開閉 | なし | 頻度が低い |
| 階層パネルを開く・閉じる | |
### F. 文書全体・その他 ### F. 文書全体・その他
| 操作 | メモ | | 操作 | キー | メモ |
| --- | --- | | --- | --- | --- |
| 元に戻す / やり直す | Ctrl+Z / Ctrl+Shift+Z | | 元に戻す / やり直す | Ctrl+Z / Ctrl+Shift+Z、Ctrl+Y | |
| 保存・書き出し | | | 保存 | Ctrl+S | |
| プロパティの入力欄へ移る | 数値を入れるとき。F2 や Enter など | | プロパティの入力欄へ移る | F2 | KLE と同じ。Enter はフォーカスモードに使う |
| ショートカットの一覧を出す | `?` など | | ショートカットの一覧を出す | `?` | |
### 割り当てていないもの
- KLE の Ctrl+矢印(回転中心の移動): 回転の中心はクラスターの原点なので、対応する操作がない。
### 残っている問い
- グリッドの刻みの候補値(1U・0.25U と、それより細かい値をいくつ用意するか)。モックで試すか、他者のフィードバックで決める。
- Ins は Mac のキーボードにない。Mac での代わり。
- Ctrl+D(Chrome のブックマーク)をページ側で横取りできるか。
## モディファイアを振るときの基準 ## モディファイアを振るときの基準
1. **データを変えるか**: A・E(変えない)と、B・C・D(変える)に分かれる。 1. **データを変えるか**: A・E(変えない)と、B・C・D(変える)に分かれる。
表示や選択を動かすつもりで配置を変えてしまわないよう、両者は別のモディファイアにしたい。 表示や選択を動かすつもりで配置を変えてしまわないよう、両者は別のモディファイアにしたい。
割り当て案では、修飾なしと Shift の矢印が配置を変え、Alt と Tab が選択を動かす。
2. **方向があって繰り返し押すか**: A(一部)と B は方向を持つので、矢印キーを取り合う。 2. **方向があって繰り返し押すか**: A(一部)と B は方向を持つので、矢印キーを取り合う。
どの値を動かすかをモディファイアで切り替えることになる。 どの値を動かすかをモディファイアで切り替えることになる。
1回で完結する C・D・F は、Ctrl+文字キーの慣例に乗せられる。 1回で完結する C・D・F は、Ctrl+文字キーの慣例に乗せられる。
3. **刻みの粗さ**: B の中だけで使う軸。「どの値か」と「刻み」をどちらもモディファイアで表すと、 3. **刻みの粗さ**: B の中だけで使う軸。「どの値か」と「刻み」をどちらもモディファイアで表すと、
組み合わせの数が掛け算で増える。 組み合わせの数が掛け算で増える。割り当て案では刻みをグリッドの状態に移した。
4. **効く場所**: どこでも効くもの(元に戻す・保存)、キャンバスやパネルにフォーカスがあるときだけ効くもの、 4. **効く場所**: どこでも効くもの(元に戻す・保存)、キャンバスやパネルにフォーカスがあるときだけ効くもの、
入力欄では文字入力を優先するもの、に分かれる。 入力欄では文字入力を優先するもの、に分かれる。
5. **キーの判定方法**: JIS 配列や独自のキー配置を使う人が多い前提で、記号・文字のキー(`?` `+` `R` など)は
`event.key` で判定し、刻印に従わせる。Shift+数字は記号が配列によって違う(Shift+2 は US で `@`、JIS で `"`)ので
`event.code` で判定する。
矢印キーを取り合う候補は、移動・サイズ・回転・スイッチの向き・選択の移動の5つ。 回転とスイッチの向きは対になったキーや1文字のキーに移したので、矢印キーを取り合うのは移動・サイズ・選択の移動の3つ。
回転とスイッチの向きは2方向しかないので、`[` `]` や `,` `.` のような対になったキーに移せる。
そうすると矢印キーの取り合いは、移動・サイズ・選択の移動の3つに減る。
## 避けたい組み合わせ ## 避けたい組み合わせ
@@ -92,3 +106,23 @@ Web アプリとして動かす場合、OS やブラウザが先に取る組み
- Ctrl+矢印: macOS の Mission Control(デスクトップの切り替え) - Ctrl+矢印: macOS の Mission Control(デスクトップの切り替え)
- Alt+←/→: ブラウザの戻る/進む - Alt+←/→: ブラウザの戻る/進む
- Ctrl+F: ブラウザのページ内検索。ELC・IDX のエディタでキー検索に使いたくなる可能性もある - Ctrl+F: ブラウザのページ内検索。ELC・IDX のエディタでキー検索に使いたくなる可能性もある
- Ctrl+± / Ctrl+0: ブラウザのズーム。取れたとしても、ページを拡大したい人の手段を奪う
## 参考: KLE の割り当て
KLE のヘルプダイアログ(`kb.html`)より。
| キー | 操作 |
| --- | --- |
| ←↑↓→ | 選択したキーを移動 |
| Shift+←↑↓→ | 選択したキーのサイズを変える |
| Ctrl+←↑↓→ | 選択したキーの回転中心を移動 |
| PgUp / PgDn | 選択したキーの回転角を変える |
| Ins / Del | キーを足す / 選択したキーを消す |
| F2 | 選択したキーのテキストを編集 |
| Ctrl+A / Esc | 全選択 / 選択解除 |
| J / K | 前 / 次のキーを選ぶ |
| Ctrl+Z / Ctrl+Shift+Z、Ctrl+Y | 元に戻す / やり直す |
| Ctrl+X、Shift+Del / Ctrl+C、Ctrl+Ins / Ctrl+V、Shift+Ins | カット / コピー / ペースト |
| Ctrl+S | 保存(サーバー上) |
| F1、`?` / F7 | ヘルプ / オプション |