prefix+m — ディスプレイを交換
prefix+m — ディスプレイレイアウトを交換
prefix+m は現在のレイアウトを 全体的に別のディスプレイへ平行移動 します: 元々ディスプレイ A にあったすべての region(ウィンドウ、カテゴリ、アプリも含めて)をディスプレイ B に運び、元々ディスプレイ B にあったものをディスプレイ A に運びます。
デフォルト chord:
m· 設定項目:swap_displays· 「設定 → ホットキー → 領域操作」で変更
4 つの使い方
prefix+m を押して swap モードに入った後、続けて押すキーに応じて 4 つの異なる分岐に進みます:
| 続けて押すもの | 分岐 | 用途 |
|---|---|---|
もう一度 m |
クイックスワップ(mm) | ディスプレイプロファイルで設定された quick_swap の 2 ディスプレイを交換; 2 ディスプレイを行き来する高頻度動作に最適 |
数字 N1 その後数字 N2 |
明示的スワップ(m+数字+数字) | ディスプレイ番号で交換する 2 ディスプレイを明示的に指定; 3 ディスプレイ以上に最適 |
数字 N その後 Enter |
デフォルトと交換(m+数字+Enter) | 選んだディスプレイをデフォルトディスプレイと交換; 覚える番号は 1 つだけ |
数字 N その後 o |
指定ディスプレイでアプリを開く(m+数字+o) | OSD に表示された番号(0 始まり)の N 番ディスプレイでアプリピッカーを開き、そのディスプレイを以降の prefix+o のスティッキーターゲットに設定; 詳細は prefix+o — ウィンドウを開く 参照 |
Esc / 上記以外の任意のキー / 押さない |
キャンセル | OSD を閉じる、交換しない |
swap モードに入ってから 120 ms 後に「ディスプレイ番号 OSD」が表示されます(各ディスプレイ中央に番号 + 解像度を表示)。この遅延により、mm を素早く連打するユーザーは OSD のちらつきを完全に見ずに済みます。
使い方 1: クイックスワップ(prefix+m m)
最もよく使う使い方。番号を覚える必要なし、m を 2 回押すだけで交換を実行します。
どの 2 ディスプレイを交換するか?
- 現在有効な ディスプレイプロファイル に
quick_swapが設定されていれば(「設定 → ディスプレイプロファイル」エディタ底部の「prefix+mm 指定ディスプレイペア」フィールドで設定)、その 2 ディスプレイを交換。 - quick_swap が未設定の場合、デフォルトでディスプレイプロファイルの 先頭 2 ディスプレイ(リストインデックス 0 と 1)を交換。
- 現在接続中のディスプレイが 2 ブロック未満 → サイレントに拒否。
OSD の動作
- 120 ms 以内に mm を完了: OSD はまだ表示されておらず、全プロセスは 完全に視覚的干渉なし。
- 120 ms を超えてから 2 つ目の m を押す: OSD が既に表示されているので、エンジンはまず OSD を非表示にしてから swap を実行し、「ちらつき」を回避。
使い方 2: 明示的スワップ(prefix+m N1 N2)
prefix+m を押し、120 ms 待ってディスプレイ番号 OSD を確認し、2 桁の数字を押します。
prefix を押す
m を押す ← swap モードに入る
120 ms 待つ ← OSD が表示、各ディスプレイ中央に番号
1 を押す ← 1 つ目のディスプレイ(src)
2 を押す ← 2 つ目のディスプレイ(dst)、即座に実行
番号はどう見るか?
OSD 上で各ディスプレイ中央に番号(0 から始まる)と解像度が表示されます。この番号は「ディスプレイ」ページ「再検出」時の番号とも一致します。
1 桁目の数字を素早く押した場合
120 ms 以内に既に 1 桁目の数字を押した場合(例えば手の動きが速くて prefix m 1 2 のように押した場合)、エンジンは 即座に OSD を補発 してハイライトを見えるようにし、それから 2 桁目の数字を待ちます。
2 桁目の数字待ちのタイムアウト
swap の入力タイムアウトは input_timeout_ms(デフォルト 3000 ms)で制御され、キーごとにリセットされます: 1 桁目を押すとタイマーが再起動し、2 桁目を押すための新しい 3 秒が与えられます。
使い方 3: デフォルトディスプレイと交換(prefix+m N Enter)
prefix+m を押し、120 ms 待ってディスプレイ番号 OSD を確認し、1 桁の数字 N を押してから Enter を押します。ディスプレイ N がデフォルトディスプレイと交換されます —— 2 つ目の番号を押す必要はありません。
prefix を押す
m を押す ← swap モードに入る
120 ms 待つ ← OSD が表示、各ディスプレイ中央に番号
1 を押す ← 移動するディスプレイ
Enter を押す ← ディスプレイ 1 をデフォルトディスプレイと交換
「デフォルトディスプレイ」はどれ?
ディスプレイプロファイルから解決されます: 「先頭ディスプレイをデフォルトにする」(first_as_default)が設定され、かつ現在接続中のディスプレイと正確に一致するプロファイルが、その先頭ディスプレイを指名します。それ以外はディスプレイ 0 がデフォルトです。
素の Enter
数字を押す前に Enter を押すと swap モードがキャンセルされます(Esc と同じ)。そのキーはフォーカスウィンドウには通されません。
拒否条件
明示的スワップと同じく、いずれもログのみで拒否(追加 toast なし): N が範囲外、N が既にデフォルトディスプレイ(src == dst)、レイアウト未発動、向き不一致。同じ入力タイムアウト input_timeout_ms(デフォルト 3000 ms、キーごとにリセット)を共有します。
使い方 5: 指定ディスプレイでアプリを開く(prefix+m N o)
prefix+m を押し、OSD が表示されたら数字 N を押してから o を押します。アプリピッカーがディスプレイ N 上で即座に開き、アプリを選択するとそのウィンドウがディスプレイ N に配置されます。
スティッキーオーバーライド: エンジンはディスプレイ N を prefix+o のターゲットとして記憶します。以降の prefix+o はデフォルトの最後のディスプレイではなく、ディスプレイ N で開きます。オーバーライドは再起動、ディスプレイのホットプラグ / 再検出、または次の prefix+m+数字+o 実行時にクリアされます。
範囲外の番号: N が現在接続中のディスプレイ数を超えた場合、「該当ディスプレイが見つかりません」という toast が表示され、シーケンスはキャンセルされます(副作用なし)。
使い方 4: キャンセル
swap モード進入後のキャンセル方法:
Escを押す: キャンセル、OSD を閉じる。- 数字でも m でも Esc でもないキーを押す: キャンセル、OSD を閉じ、そのキーをフォーカスウィンドウにそのまま通す。
- 前回のキーから入力タイムアウト(
input_timeout_ms、デフォルト 3000 ms)を超えて操作なし: タイムアウトでキャンセル。 - 前面ウィンドウの切り替え、ディスプレイホットプラグ、設定再読み込み: 自動キャンセル。
拒否条件
シンタックスが正しくても、以下の状況ではエンジンは swap の実行を拒否し、OSD を閉じてログに理由を記録します:
| 状況 | 動作 |
|---|---|
| まだレイアウトを発動したことがない(current_layout が空) | 拒否 |
| ディスプレイ番号が現在接続中ディスプレイ数を超えた(3 ディスプレイで 0/1/2 のみのところ 3 を押すなど) | 拒否 |
2 つの番号が同じ(m 1 1 など) |
拒否 |
| 向き不一致: swap する或る region が横向きカテゴリを使っているが、ターゲットディスプレイが縦向き(または逆) | 拒否して警告 |
向き不一致は最もよくある拒否理由です。回避方法: 「レイアウト」ページでそのバインディングに縦向き対応のバリアントをもう 1 つ書く、または「ディスプレイプロファイル」ページで両ディスプレイの向きを一致させる。
他のアクションとの関係
- swap 後は
prefix+fのサイクルセッションがクリアされる(再度 region を開いてからでないと順次切り替えを続けられない)。 - swap は
prefix+qで選択中の region に影響しない(バインディングレベル記憶、ディスプレイ順とは無関係)。 - swap は 現在のレイアウトのみ交換 します: 他のバインディングは次回発動時に依然として各自のバリアントどおりに走ります。
タイミングパラメータ(アドバンスト)
| パラメータ | デフォルト | 設定位置 |
|---|---|---|
| swap 入力タイムアウト(キーごとにリセット) | 3000 ms |
ホットキー → アドバンスト → コマンドキー後の入力タイムアウト(input_timeout_ms) |
| OSD 遅延 | 120 ms |
組み込み定数、調整不可 |