macOS 自带的分屏与切换逻辑偏“够用”,但当你同时开着浏览器、IDE、文档、聊天工具时,很快会被窗口堆叠、找不到窗口、键盘鼠标来回切换打断节奏。本文用 3 个工具把窗口管理拆成三件事:
1)Rectangle 负责“把窗口放到哪”;2)AltTab 负责“在窗口之间怎么切”;3)Hammerspoon 负责“把你自己的习惯变成快捷键/自动化”。组合起来,就能用一套键位完成分屏、吸附、快速切换与场景化布局。
Rectangle:https://rectangleapp.com/
AltTab:https://alt-tab-macos.netlify.app/
Hammerspoon:https://www.hammerspoon.org/
如果你习惯用 Homebrew,也可以用命令一键安装(命令行内容请整段复制执行):
brew install --cask rectangle alt-tab hammerspoon
安装后打开 Rectangle,通常只需要做三件事:启用辅助功能权限、选择一套你习惯的快捷键、以及打开/关闭少数行为选项。
推荐快捷键思路(仅供参考):把“左/右半屏、左右三分之一、居中、最大化、上一屏/下一屏”设为你最常用的组合。这样你不用纠结“要不要全屏”,因为半屏/三分之一往往更符合多任务。
小技巧:如果你经常外接显示器,建议开启“在显示器之间移动窗口”的快捷键;这比拖拽更稳定,也更少误触。
很多人不满的点是:macOS 的 Command + Tab 以“应用”为单位切换,而不是“窗口”。AltTab 的价值是让你像在 Windows/Linux 一样,直接在窗口缩略图间切。
建议设置:
1)把主要切换快捷键设为 Option + Tab(或你不常用的组合),避免和系统热键冲突;
2)在显示设置里选择“显示当前空间的窗口”或“显示所有空间的窗口”,按你是否经常开多桌面决定;
3)打开“按窗口最近使用顺序排序”,更贴近你的真实工作流。
Hammerspoon 是一个用 Lua 写 macOS 自动化的工具,它能监听快捷键、窗口事件、App 启动,并执行窗口布局或脚本动作。它适合做两类事:
1)“一键到位”的布局:例如按一次键,把浏览器放左 2/3、编辑器放右 1/3、聊天工具贴在右下角;
2)“场景开关”:例如进入会议模式,自动打开常用 App 并把窗口摆好。
下面是一段最小可用示例:按下 Ctrl + Option + Command + W,把当前窗口居中并限制宽度(适合写作/阅读)。把它保存到 ~/.hammerspoon/init.lua 后,在菜单里 Reload Config 即可生效:
hs.hotkey.bind({"ctrl","alt","cmd"}, "W", function() local win = hs.window.focusedWindow() if not win then return end local f = win:frame() local screen = win:screen():frame() local w = math.min(1100, screen.w) local h = screen.h * 0.92 win:setFrame({x = screen.x + (screen.w - w)/2, y = screen.y + (screen.h - h)/2, w = w, h = h}) end)
参考文档:https://www.hammerspoon.org/docs/
1)快捷键不生效:优先检查“系统设置 -> 隐私与安全性 -> 辅助功能/输入监控”里是否给了对应 App 权限;其次检查是否和系统/其他软件热键冲突。
2)外接显示器布局总乱:尽量固定显示器排列与分辨率;Rectangle 的“移动到下一显示器”快捷键比拖拽更不容易出错。
3)AltTab 看不到某些窗口:检查 AltTab 的过滤规则(例如是否隐藏了最小化窗口、全屏窗口或某些 App 的窗口类型)。
最后给一套简单但非常实用的组合:
1)用 Rectangle 负责“位置”(左/右半屏、三分之一、最大化);
2)用 AltTab 负责“切换”(窗口级别的 Option+Tab);
3)用 Hammerspoon 只做 1-2 个“强需求快捷键”(比如居中阅读、会议布局),不要一开始就写大工程。
当你把窗口管理从“鼠标拖来拖去”变成“键盘几次按键”,工作时的注意力会明显更连续。