prefix+m — 交换显示器布局

语言 · 中文 · English · 日本語

← 返回设置页帮助

prefix+m 把当前布局整体平移到另一块屏上:原来在屏 A 的所有 region(连同窗口、类别、应用)搬去屏 B,原来在屏 B 的搬去屏 A。

默认 chord:m · 配置项:swap_displays · 在「设置 → 快捷键 → 区域操作」改


四种用法

prefix+m 进入 swap 模式后,根据你接下来按的键走四种不同分支:

接下来按 分支 用途
再按一次 m 快速 swap(mm) 交换显示场景里设定好的 quick_swap 两屏;适合两屏来回切的高频动作
数字 N1 然后数字 N2 指定 swap(m+数字+数字) 用屏编号显式指定要交换的两屏;适合三屏以上
数字 N 然后 Enter 与默认屏交换(m+数字+Enter) 把选中的屏与默认屏交换;只需记一个编号
数字 N 然后 o 在指定屏上打开应用(m+数字+o) N 号屏(OSD 上显示的 0 起编号)上打开应用选择器,并把该屏设为后续 prefix+o 的目标屏;详见 prefix+o — 打开窗口
Esc / 任意非上述键 / 不按 取消 关闭 OSD,不做交换

进入 swap 模式 120 ms 后才会弹出「显示器编号 OSD」(每屏中央显示编号 + 分辨率)。这个延迟让快速连按 mm 的用户完全看不到 OSD 闪烁


用法 1:快速 swap(prefix+m m

最常用的用法。不用记编号,按两次 m 就执行交换。

交换哪两屏?

  • 当前生效的显示场景里若设过 quick_swap(在「设置 → 显示场景」编辑器底部「prefix+mm 指定屏对」字段),就交换这两屏。
  • 没设 quick_swap 时,默认交换显示场景里的前两块屏(即列表索引 0 和 1)。
  • 当前接入屏不足 2 块 → 静默拒绝。

OSD 行为

  • 120 ms 内按完 mm:OSD 还没显示,整个过程完全无视觉干扰
  • 超过 120 ms 才按第二个 m:OSD 已经弹出来了,引擎会先把 OSD 隐藏再执行 swap,避免「闪一下」。

用法 2:指定 swap(prefix+m N1 N2

prefix+m,等 120 ms 看到屏编号 OSD,按两位数字。

按  prefix
按  m              ← 进入 swap 模式
等  120 ms         ← OSD 弹出,每屏中央显示编号
按  1              ← 第一块屏(src)
按  2              ← 第二块屏(dst),立即执行

编号怎么看?

OSD 上每屏中央会显示编号(从 0 开始)和分辨率。这个编号也和「显示器」页面「重新探测」时的编号一致。

第一位数字按得很快怎么办

如果你 120 ms 内已经按下第一位数字(比如手速很快地按 prefix m 1 2),引擎会立即补发 OSD 让你看清楚高亮,然后等第二位数字。

等待第二位数字的超时

swap 的输入超时由 input_timeout_ms(默认 3000 ms)控制,并且每按一键重置:按完第一位数字后会重新计时,你有完整的 3 秒去按第二位。


用法 3:与默认屏交换(prefix+m N Enter

prefix+m,等 120 ms 看到屏编号 OSD,按一位数字 N,再按 Enter。屏 N 会与默认屏交换——不用再按第二个编号。

按  prefix
按  m              ← 进入 swap 模式
等  120 ms         ← OSD 弹出,每屏中央显示编号
按  1              ← 要搬动的屏
按  Enter          ← 把屏 1 与默认屏交换

哪块是「默认屏」?

由显示场景决定:某个勾选了「首屏作为默认屏」(first_as_default)、精确匹配当前接入屏的显示场景,会提名它的第一块屏为默认屏;否则默认屏就是 0 号屏。

裸 Enter

没按数字就直接按 Enter 会取消 swap 模式(与 Esc 一致),且该按键透传给焦点窗口。

拒绝条件

与指定交换一致,均拒绝并仅写日志(不弹额外 toast):N 越界、N 本身就是默认屏(源 == 目标)、没触发过任何布局、朝向不匹配。共用同一个输入超时 input_timeout_ms(默认 3000 ms,每按一键重置)。


用法 5:在指定屏上打开应用(prefix+m N o

prefix+m,等 OSD 弹出后,按一位数字 N,再按 o应用选择器立即在 N 号屏上打开,选中应用后窗口被放到 N 号屏。

粘性目标:引擎把 N 号屏记为 prefix+o 的目标屏,此后 prefix+o 都在该屏上打开,不再是默认的最后一块屏。目标屏在以下情况清空:重启、显示器热插拔 / 重新探测、或再次执行 prefix+m+数字+o

编号越界:如果 N 超出当前接入屏数量,弹出”找不到该显示器”toast,序列取消,无副作用。


用法 4:取消

进入 swap 模式后取消的方式:

  • Esc:取消,OSD 关闭。
  • 按任意非数字非 m 非 Esc 的键:取消,OSD 关闭,这个按键透传给焦点窗口
  • 距上次按键超过输入超时(input_timeout_ms,默认 3000 ms)无操作:超时取消。
  • 切换前台窗口、显示器热插拔、配置重载:自动取消。

拒绝条件

即使语法没错,下列情况引擎也会拒绝执行 swap,OSD 关闭并在日志里写明原因:

情况 行为
没触发过任何布局(current_layout 为空) 拒绝
屏编号超出当前接入屏数量(如三屏只有 0/1/2,按了 3) 拒绝
两个编号相同(如 m 1 1 拒绝
朝向不匹配:要 swap 的某个 region 用了横屏类别,但目标屏是竖屏(或反过来) 拒绝并告警

朝向不匹配是最常见的拒绝原因。规避方式:在「布局」页给该绑定多写一个适配竖屏的预案,或者在「显示场景」页让两屏朝向一致。


与其它动作的关系

  • swap 之后会清掉 prefix+f 的循环会话(重新开 region 后才能继续轮换)。
  • swap 不影响 prefix+q 选中的 region(绑定级记忆,与屏序无关)。
  • swap 是 仅交换当前布局的:其它绑定在下次触发时仍按它们各自的预案走。

时序参数(高级)

参数 默认 设置位置
swap 输入超时(每按一键重置) 3000 ms 快捷键 → 高级 → 命令键后输入超时(input_timeout_ms
OSD 延迟 120 ms 内置常量,不可调