prefix+f — リージョンウィンドウを順次切り替え
prefix+f — リージョン内で app の複数ウィンドウを順次切り替え
prefix+f は選択中の region の現在のアプリの 次のウィンドウ をその region に持ってきます。
デフォルト chord:
f· 設定項目:cycle_region· 「設定 → ホットキー → 領域操作」で変更
典型的なシーン
レイアウトが region 0 を Chrome に配置しているが、Chrome のウィンドウを 5 つ開いているとします。最初にレイアウトを発動すると 1 つ目の Chrome が region 0 に配置されます。2 つ目、3 つ目を見たいときは prefix+f を押し続けます。1 回押すごとに次のものに切り替わり、最後まで行くと先頭に戻ります。
発動の流れ
1. (任意)prefix+q N で region N を選択。選ばない場合はデフォルトで region 0
2. prefix+f で次のウィンドウが当該 region に移動してアクティブになる
3. もう一度 prefix+f で更に次 …
一発で:
prefix+q→f→数字でその region を選択して本操作を即実行(prefix+q 参照)。
候補ウィンドウの選び方
エンジンは以下の順序で行います:
- 当該 region の現在のアプリの すべての実行中ウィンドウ を取得。
- 現在のレイアウトの 他の region に既に占有されている ウィンドウを除外(他 region のウィンドウを盗まないため)。
- 残りを MRU(最近使用)順にソートしてサイクルリストとする。
- 最初に
fを押したとき、リストから「現在のものではない」最新の 1 つを選ぶ。 - 以降の
f押下ではリスト内を後ろへ進み、末尾に達したら先頭に戻る。
リストに候補ウィンドウが 1 つしかない場合(「まさに今のもの」を含む)、
fを押すと サイレント無操作 です。
サイクルセッションの有効期限
f を押す間隔は サイクルタイムアウト に制御されます(デフォルト cycle_timeout_ms = 3000 ms):
- 3 秒以内に連続して
fを押すと同じサイクルセッションとみなされ、cursor は引き続き後ろへ進む。 - 3 秒を超えてから再度
fを押す → 新しいセッションを開始し、「現在のものではない」から始める。
セッションは以下のイベントでも 強制クリア されます:
- レイアウトの切り替え(
prefix+<key>/prefix+n/p/l/prefix+w)。 - 候補リスト中のあるウィンドウが閉じられた。
prefix+r(restore)。prefix+mswap が完了。- 設定の再読み込み。
フルスクリーン / ネイティブ最大化の処理
- 現在の region が
prefix+zで一時フルスクリーン中: 順次切り替えで出てきた次のウィンドウも フルスクリーンサイズ で配置(フルスクリーンの見た目を保つ)。 - 現在のレイアウトがその region に
is_native_maximize(ネイティブウィンドウ最大化フラグ)を設定: 順次切り替えのウィンドウはmove_windowではなくmaximize_nativeを経由し、一部アプリ(Office / ブラウザ)でカスタムサイズ下のレンダリング異常を回避する。
選択状態の記憶
prefix+f は selected_region をターゲットとして使います。一度 prefix+q N で region を選択すると、以降の f / z / g / c / x の連打はすべて region N に対して有効になり、毎回選び直す必要はありません。
別のバインディングに切り替えてから戻ってきた場合のみ selected_region が変化することがあります(各バインディングは独立して記憶)。
拒否条件
| 状況 | 動作 |
|---|---|
| 現在使用可能なレイアウトがない | サイレント |
| selected_region が現在のレイアウトに存在しない | サイレント |
当該 region のアプリが [apps] に登録されていない |
エラー(理論上発生しないはず) |
| 候補リストが 2 ウィンドウ未満 | サイレント |
| cursor が指すウィンドウが既に死んでいる | セッションをクリアし、本回の押下は無効 |
タイミングパラメータ
| パラメータ | デフォルト | 設定位置 |
|---|---|---|
| 同セッション最長間隔 | 3000 ms |
ホットキー → アドバンスト → サイクルタイムアウト(cycle_timeout_ms) |