爱意满满的作品展示区。
tumk

在家和公司之间插拔外接屏,窗口全乱套——我做了个工具把它们放回去,包括放回原来的桌面

  •  
  •   tumk · 2h 53m ago · 142 views

    每天带着笔记本在家和公司之间跑,插拔一次外接屏,窗口就全挤回内建屏,还散落在不同的 Mission Control 桌面上,手动归位要好几分钟。找了一圈工具没解决,干脆自己写了一个:LayoutKeeper 。

    先说现有工具为什么解决不了我的问题:

    • Rectangle 、Magnet 这类是分屏工具,管的是把窗口快速摆到左半/右半,不管"恢复到原来的样子"。
    • Stay 、Display Maid 能按显示器配置恢复窗口位置,但窗口回不到原来的桌面( Space )——对我这种一个桌面写代码、一个桌面通讯、一个桌面看文档的人来说,位置对了、桌面错了,还是乱的。

    LayoutKeeper 做的事:

    • 按屏幕硬件记布局:用显示器的 EDID (厂商/型号/序列号)区分家里和公司的屏幕,各存一份,不用手动选场景。
    • 跨桌面恢复:保存时记下每个窗口在外接屏的第几个桌面,恢复时连桌面一起放回去(需要 macOS 26+)。
    • 版式:同一块屏幕可存多套命名布局(比如"写代码""开会"),菜单栏一键切换。
    • 历史版本:每块屏幕自动留最近 5 个版本,可预览、可回滚。
    • 稳字当头:恢复前可逐窗口预览;每个窗口移动后回读确认,没到位就回滚;每次恢复都能一键撤销;同名窗口分不清时标"需要确认"让你选,绝不猜着移。
    • 菜单栏常驻 + 全局快捷键:⌃⌥⌘S 保存、⌃⌥⌘R 恢复、⌃⌥⌘Z 撤销。接上屏幕时可以自动恢复(每块屏幕第一次会先问你)。

    技术上一句带过:跨桌面移动用的是 macOS 26 的 SkyLight 私有接口,所以不用关 SIP 、不用注入 Dock,只需要"辅助功能"一个权限。

    诚实写局限:

    • 目前只支持一块外接屏。
    • 跨桌面恢复要 macOS 26+(同一桌面内的位置/大小恢复 macOS 14+ 就行),且依赖私有 API ,系统大更新后可能失效——应用启动时会自动检测,失效就自动关掉这个功能,不会乱移窗口。
    • Finder 窗口没法跨桌面移动(拿不到进程启动时间,过不了身份校验)。

    隐私:不收集任何数据,没有统计。唯一的联网是去 GitHub 检查更新(可关)。布局只存在本机 ~/Library/Application Support/LayoutKeeper/。

    GPL-3.0 开源,免费。下载在 Releases 里(未公证,第一次右键→打开)。从 0.6.1 起支持应用内检查更新,更新后辅助功能权限不用重新授。

    仓库: https://github.com/tumingke0/LayoutKeeper

    多屏办公的同学欢迎试用,提 Issue 时附上"设置 → 诊断 → 一键自检"的报告,我修得会快很多。求反馈,求 star 。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3447 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:07 · PVG 20:07 · LAX 05:07 · JFK 08:07
    ♥ Do have faith in what you're doing.