sdjl
V2EX  ›  macOS

有没有一个多显示器多工作区自动恢复窗口布局的 macOS 程序?

  •  
  •   sdjl · Jul 28 · 2844 views

    说一下我的需求:

    1. 3 个显示器,每个显示器下有多个工作区
    2. 同时开许多程序,有些程序会同时开多个窗口(例如 Cursor )
    3. 希望能一键恢复窗口布局,我尝试过这类程序都不支持多工作区布局(只能设置某程序在某个显示器当前的工作区上,不支持设置在非活跃工作区上)
    4. 例如 A 显示器有 a1 a2 a3 工作区,B 显示器有 b1 b2 b3 工作区,我希望能精确控制每个程序的某个窗口在某个工作区
    5. 有时后会把笔记本带出门,此时就只有一个显示器+多个工作区,此时窗口的布局逻辑和多个显示器时不一样,相当于有两套布局方式。
    6. 接上或拔掉显示器的时候,会自动恢复对应的窗口布局方案

    我有一个疑问,这个需求应该是使用多显示器的人都有的需求对吧?那么为什么现在的窗口管理软件都不太支持这么基础的功能呢?是 macOS 的开发限制么?

    19 replies    2026-07-31 11:13:03 +08:00
    dufu1991
        1
    dufu1991  
       Jul 28
    我已经做好了,目前正在调试各项功能。预计一个月之内可以做完。
    sdjl
        2
    sdjl  
    OP
       Jul 28
    @dufu1991 好啊,这产品我愿意买,68 买断最好了
    lockheart
        3
    lockheart  
       Jul 28 via iPhone
    试试两个,可以保存和恢复窗口布局,Stay 在限免

    Stay:
    https://apps.apple.com/app/stay/id435410196

    Display Maid:
    https://apps.apple.com/app/display-maid/id450063525
    sdjl
        4
    sdjl  
    OP
       Jul 28
    @lockheart 谢谢,我试试看
    sdjl
        5
    sdjl  
    OP
       Jul 28
    @lockheart Stay 这个我尝试了,不行,和其他软件一样,只能把窗口恢复到当前活跃的工作区,不可以恢复到其他工作区中。

    例如我的 A 显示器有 a1 a2 a3 三个工作区,我当前的活跃工作区是 a1 ,但是我需要让窗口恢复到 a2 a3 ,这个软件做不到。
    neptuno
        6
    neptuno  
       Jul 28
    其实自己 vibe coding 一个就好了
    jorneyr
        7
    jorneyr  
       Jul 29
    可以试试使用 Hammerspoon 自己写脚本实现一个。
    sdjl
        8
    sdjl  
    OP
       Jul 29
    @neptuno
    @jorneyr

    我是这样想的:既然这个需求是显而易见的,但现有的这些产品都没有实现,那可能这个问题在技术上就是解决不了的。


    @dufu1991 不知道你能不能解决这个需求?
    neptuno
        9
    neptuno  
       Jul 29
    @sdjl 不是的,你别人能实现,但总有某个点不符合你的需求的。我正在用 codex 实现你的需求,之前确实也有你这样的想法。你其实可以自己实现一个,因为我也只会满足自己的需求。
    CarsonXian
        10
    CarsonXian  
       Jul 29
    sdjl
        11
    sdjl  
    OP
       Jul 30
    @CarsonXian 这个也不行,你看它的页面中有这么一句话:

    Currently, Memmon restores windows in other spaces only if the space is activated. If you know a way to access the accessibility settings of a different space, let me know.
    sdjl
        12
    sdjl  
    OP
       Jul 30
    @neptuno 如果别人都实现不了这个需求,我估计这是系统限制,无法实现。
    neptuno
        13
    neptuno  
       Jul 30
    @sdjl 其实我已经实现了,支持保存布局,先切换到某个工作区再恢复布局。你说的需求是比较定制化的,软件开发者没这种使用习惯的话,是不会给你开发的。ai 时代其实自己下一个 codex ,想用什么功能,自己开发软件,几个小时就开发好了。
    CarsonXian
        14
    CarsonXian  
       Jul 30
    @sdjl 对,它在回到对应的桌面的时候才会重复恢复窗口原本的布局,甚至有一定偏移,主要是它能侦听屏幕数量变化事件并自动操作。
    对我来说是把“显示器具有独立空间”给关了,这样保证所有屏幕的“桌面 1 2 3”都是对应某一个项目的窗口,在结合 memmon ,基本能达成 80%的“多显示器多工作区自动恢复窗口布局的”要求。
    这种功能最好还是系统内置支持,第三方总有问题,但这是苹果得要它什么时候觉得需要加才有得用(比如到现在还没有的桌面重命名)
    SuzhaharCan
        15
    SuzhaharCan  
       Jul 30
    键盘控用户可用
    Yabai 支持 多显示器 多工作区 多窗口管理
    @dufu1991 老哥, 多测试下 Mac26, Mac27,如果可用,可以和 Yabai 兼容, 我会支持 你的软件
    SuzhaharCan
        16
    SuzhaharCan  
       Jul 30
    @sdjl
    就是官方 对 窗口权限的收紧限制.

    一键恢复 建立布局的 Moom , Rectangle Pro ( BTT 等手动建立脚本的,默认有该功能)
    精确控制每个程序的某个窗口在某个工作区 , 目前 GUI 类工具 均没有实现, 我也是走 Yabai + 脚本实现;

    5 6 两点 , 我是依赖 Yabai 自动组合窗口, 没想过这个 GUI 对应的 软件
    sdjl
        17
    sdjl  
    OP
       Jul 30
    @SuzhaharCan 只要能解决需求就行,不需要 GUI 程序。

    你是说 Yabai 这个支持我的需求?
    SuzhaharCan
        18
    SuzhaharCan  
       Jul 30
    @sdjl 对啊, 你上手 尝试 Yabai + skhd + SketchyBar 这 3 者做组合 ;

    针对指定的窗口 , 预分配在 某 显示器的 某工作区 , 在 yabai 配置文件中 rule 层级 就可以设置;
    简单浏览. 例如
    # 示例:将浏览器固定在显示器 1 的 Space 1
    yabai -m rule --add app="^Arc$" display=1 space=1
    # 示例:将通讯软件固定在显示器 2 的 Space 5 ,且不进行平铺(浮动)
    yabai -m rule --add app="^WeChat$" display=2 space=5 manage=off

    如果 你打算 一键 启动 预布局好的工作区 的窗口 , MooM 或 Yabai 调用 脚本 执行 均可.
    我已经对你的核心需求 做 拆解 和 说明, 剩下的根据 yabai 文档 微调.
    Yabai 的核心开发者 明确说明 27 正式版推出后, 会 同步支持到 27 的.
    sdjl
        19
    sdjl  
    OP
       Jul 31
    @SuzhaharCan 好的,我忙完手上的事情,我再试试,谢谢你的建议
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3241 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 105ms · UTC 03:28 · PVG 11:28 · LAX 20:28 · JFK 23:28
    ♥ Do have faith in what you're doing.