prefix+m — 交换显示器
prefix+m — 交换显示器布局
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 |
内置常量,不可调 |