乐于分享
好东西不私藏

放弃复杂的第三方软件,用苹果自带功能「一键恢复」工作状态

放弃复杂的第三方软件,用苹果自带功能「一键恢复」工作状态
你有没有算过,每次打开电脑准备工作前,你要浪费多少精力?

打开聊天软件、启动笔记、打开浏览器查资料、唤出终端……然后一个个拖动窗口,把浏览器挪到右边,笔记放左边,把聊天工具缩放到角落。

这几分钟的「准备动作」看似没什么,但它正在无声无形地消耗你最宝贵的意志力。等你终于把桌面整理好,可能已经不想干活了。

亦或者活干着干着,杂乱的窗口已经找不到你要的窗口在什么位置了。

最高效的工作状态,是不需要准备的。点一下鼠标,所有熟悉的软件瞬间回到固定的位置。

接下来,直接开干。

1. 为什么我卸载了所有「分屏软件」?

市面上有很多强大的分屏和窗口管理软件。年轻时,我也曾痴迷于安装各种效率神器。

但几年下来,我发现了一个残酷的真相:一个方案依赖的外部工具越多,它就越脆弱。

要么系统一升级就不兼容了,要么换了新电脑懒得重新配置,最后全变成了吃灰软件。真正能长期陪伴你的,往往是最简单、最贴近系统底层的原生方案。

所以,我给自己的终极桌面恢复方案定了三条铁律:

  1. 极度简单,一点即用
  2. 零外部依赖,不装第三方软件
  3. 一次配置,终身可用

答案就藏在 macOS 系统里:「快捷指令」+「AppleScript」。

不花哨,但极其稳定。

2. 它是怎么运作的?

很多人只把 iPhone 上的「快捷指令」用来扫码,录音,其实在 Mac 上,它是最强的自动化利器。

我们这里的逻辑很简单:

  • 用 AppleScript 写一段简短的代码,告诉电脑「把哪些软件,放在屏幕的什么位置」。
  • 用 快捷指令 把它做成一个按钮。

你只需要点一下这个按钮(或者按个快捷键),代码就会在后台静默运行。快捷指令负责「触发」,AppleScript 负责「干活」。

3. 我的三屏工作区布局(供参考)

我目前用三块屏幕办公(两横一竖),但即使你只有一块屏幕,逻辑也是一样的。

我的分布是这样的:-主战场(左上 2K 横屏):分上下两排。上排是常用工具(GG、Obsidian、备忘录),下排是执行工具(Antigravity、Chrome、Telegram)。-副战场(右侧 2K 竖屏):上下平分,一半放代码工具 Codex,一半放终端 Terminal。不抢主注意力。

这种布局的好处是:视线所及之处,每个工具都有自己的「专属地盘」。大脑不需要再去判断「那个窗口在哪」,这就是肌肉记忆的力量。

下面示意的分屏后的环境

4. 抄作业:完整脚本

你可以直接复制下面这段 AppleScript,然后在里面修改成你的常用软件。

或者直接拷贝过去,交给AI改成你需要的版本。

-- 家用三屏工作区一键布局(也可用于单屏)-- 默认 Mac 内置屏为主屏,如果主屏是外接显示器,将下面的 true 改为 falseset useMacScreenAsMain to true-- 1. 这里改成你常用的软件名字(必须和 Mac 里的应用名称完全一致)set appList to {"GG", "Obsidian", "Notes", "Telegram", "Antigravity", "Google Chrome", "Codex", "Terminal"}-- 自动打开上述软件repeat with appName in appList    try        do shell script "open -a " & quoted form of appName    on error        tell application "System Events"            if not (exists process appName) then                launch application appName            end if        end tell    end tryend repeatdelay 2 -- 给软件一点启动时间-- 2. 屏幕的基础尺寸(改成你自己的屏幕分辨率)set topScreenW to 2560set topScreenH to 1440set macScreenW to 2560set macScreenH to 1660set sideScreenW to 1440set sideScreenH to 2560-- 坐标原点计算(这部分不需要动)if useMacScreenAsMain then    set topX to 0    set topY to -topScreenH    set sideX to topScreenW    set sideY to -topScreenHelse    set topX to 0    set topY to 0    set sideX to topScreenW    set sideY to 0end if-- 3. 计算每个窗口的区块位置set topTwoFifthsW to topScreenW * 2 / 5set topFourFifthsW to topScreenW * 4 / 5set topMidY to topY + topScreenH / 2set topRightX to topX + topScreenWset topBottomY to topY + topScreenHset topCol1X to topXset topCol2X to topX + topTwoFifthsWset topCol3X to topX + topFourFifthsWset sideRightX to sideX + sideScreenWset sideMidY to sideY + sideScreenH / 2set sideBottomY to sideY + sideScreenH-- 4. 将对应的软件填入对应的区块坐标中:{左, 上, 右, 下}my setProcessWindowBounds("GG", {topCol1X, topY, topCol2X, topMidY})my setProcessWindowBounds("Obsidian", {topCol2X, topY, topCol3X, topMidY})my setNotesWindowBounds({topCol3X, topY, topRightX, topMidY})my setProcessWindowBounds("Antigravity", {topCol1X, topMidY, topCol2X, topBottomY})my setProcessWindowBounds("Google Chrome", {topCol2X, topMidY, topCol3X, topBottomY})my setProcessWindowBounds("Telegram", {topCol3X, topMidY, topRightX, topBottomY})my setProcessWindowBounds("Codex", {sideX, sideY, sideRightX, sideMidY})my setProcessWindowBounds("Terminal", {sideX, sideMidY, sideRightX, sideBottomY})-- 核心执行函数(不需要动)on setProcessWindowBounds(appName, targetBounds)    tell application "System Events"        if exists process appName then            tell process appName                set frontmost to true                delay 0.1                try                    if (count of windows) > 0 then                        set value of attribute "AXFullScreen" of window 1 to false                        set position of window 1 to {item 1 of targetBounds, item 2 of targetBounds}                        set size of window 1 to {(item 3 of targetBounds) - (item 1 of targetBounds), (item 4 of targetBounds) - (item 2 of targetBounds)}                    end if                end try            end tell        end if    end tellend setProcessWindowBoundson setNotesWindowBounds(targetBounds)    try        tell application "Notes"            activate            if (count of windows) is 0 then                show default folder                delay 1            end if            if (count of windows) > 0 then                set bounds of window 1 to targetBounds            end if        end tell    end tryend setNotesWindowBounds

5. 怎么把它变成一个按钮?

拿到代码后,跟着做这几步,一次成型:

  1. 打开 Mac 自带的「快捷指令」App。
  2. 新建一个快捷指令,命名为「进入工作状态」或「恢复桌面」。
  3. 在右侧搜索框搜「运行 AppleScript」,把它拖到中间。
  4. 把上面的代码粘贴进去。
  5. 点一下运行图标测试。系统如果提示权限请求(比如控制 Chrome),一律点「允许」。

设置好以后,你可以把它拖到 Dock 栏,放在菜单栏,甚至给它绑定一个专属的键盘快捷键。

6. 写在最后

这套方案表面上看是在「整理窗口」,但它真正解决的,是你和工作之间的摩擦力。

消除摩擦,才能专注。不要把精力浪费在整理工具上,用最简单的系统级方案把它固化下来。

打开电脑,一键恢复,马上开干。

如果这个方法对你有用,💾 保存这篇文章,今晚只花 5 分钟配置好。明天开始,夺回你的注意力。

相关学习资料