📚 文稿库

Aerospace:macOS上最好用的平铺窗口管理器

本视频详细介绍了 macOS 平铺窗口管理器 Aerospace 的安装、配置及使用技巧,旨在通过键盘操作和自定义工作区提升系统操作效率。

UP主: 比特光锥_BlightCone · 时长: 24:23 · 🔗 B站原视频

标签: macOS · 效率工具 · 窗口管理 · Aerospace · 生产力

什么是 AeroSpace 平铺窗口管理器

在本视频里,将展示你需要知道的一切,关于设置和使用 AeroSpace 平铺窗口管理器,并彻底改变你工作和管理 macOS 窗口的方式。平铺窗口管理器是管理电脑窗口的好方法,通过使用键盘,可以极大地提高生产力,对我来说是游戏规则的改变。我以前使用过 Yabai 平铺窗口管理器,但有些事我不满意,比如需要禁用系统完整性保护(SIP)。AeroSpace 与 i3 平铺窗口管理器类似,如果你有 Linux 背景会很熟悉。我想指出 AeroSpace 目前处于公开测试阶段,但创作者每天都在使用它,我个人最近几周也在使用。话虽如此,让我们开始吧。

安装与初始化配置

首先需要安装 AeroSpace 软件,用 Homebrew 最简单。若未安装 Homebrew,描述中的博客有安装指南。安装 Homebrew 后,可运行 brew install --cask aerospace 来安装。启用 AeroSpace 前,我将为它添加默认配置作为起点。你可以在两个不同位置创建配置文件:可以位于家目录 ~/.aerospace.toml,或位于 ~/.config/aerospace/aerospace.toml。我将使用后者的位置。首先使用 mkdir -p ~/.config/aerospace 创建缺失的父目录并按回车,然后使用 cd aerospace 进入该目录,创建名为 aerospace.toml 的新文件。现在可以使用你选择的编辑器打开此文件,可以使用文本编辑(例如执行 open -a TextEdit aerospace.toml),或使用 VS Code,我将使用 nvim 打开它。AeroSpace 官方文档有一个默认配置,描述中会有链接,我将复制此默认配置,返回终端粘贴并保存此文件。现在按 Command+空格 查找 AeroSpace 并按回车,这样它就开始运行了。

工作区概念与基础设置

如果你的菜单栏有足够的空间,你会看到一个数字。点击它,我们将获得所有不同工作区的列表。AeroSpace 的工作原理是重新实现了 macOS 的空间功能并称之为“工作区(Workspace)”,因此我们拥有更好的控制和功能。如果你使用过其他平铺窗口管理器,比如 Yabai 或 Amethyst,你会知道内置的 macOS 空间有很多限制。回到默认配置,这是一个很好的起点。我想让它在登录时启动,因此我将 start-at-login 从 false 更改为 true。然后向下滚动转到间隙(gaps)设置,我想要窗口和显示器边缘之间有一些间隙,所以我将所有这些更改为 10 并保存文件。

快捷键绑定与模式切换

配置文件下方是模式(mode)设置。主绑定(main binding)是定义键映射的地方,用于以不同方式与 AeroSpace 交互。类似于 i3 平铺窗口管理器,AeroSpace 使用模式,在每个模式下可以定义不同的键映射集。默认模式是主模式。向下滚动,会找到一些键绑定定义。它们的工作原理是:左侧是键绑定(例如按 Alt+/),右侧是 AeroSpace 命令,指示其采取特定行动。滚动到底部,会看到最后一个键绑定使用 mode 命令将绑定模式更改为“服务(service)”模式。若要重命名此模式,只需将其更改为其他名称,例如“管理”,我这里还是改回“服务”。在服务绑定模式下按 ESC,将重新加载配置并返回主模式。若要使用多个命令,请使用数组格式。让我们实际操作一下:按 Alt+Shift+分号,在顶部工作区编号旁边会看到一个 S,表示进入了服务绑定模式。现在按 ESC,AeroSpace 将重新加载配置并返回主绑定模式。因为我刚才更改了间隙,现在可以看到窗口周围出现了新间隙。每次更改配置时都可以这样做来重新加载。

窗口焦点切换与移动

回到主绑定模式,探索默认设置的一些键映射。我们可以使用 Alt 加上 H、J、K、L 来聚焦屏幕上的不同窗口。我按 Command+N 创建几个新终端窗口。如果按 Alt+H 可以向左移动焦点,Alt+L 将向右移动,这些本质上与 Vim 的方向键相同,非常方便。我将更改布局来演示如何上下聚焦。如果你在跟着操作,请确保光标位于中间的终端窗口中,按 Alt+Shift+分号 进入服务模式,按 Alt+Shift+L 将在右侧创建一个垂直拆分。现在按 Alt+J 会向下移动焦点,Alt+K 向上移动,Alt+H 向左,Alt+L 向右。此外还有四个移动窗口位置的命令:将焦点切到右侧窗口,按 Alt+Shift+J 窗口会移到底部,按 Alt+Shift+K 会移到顶部,按 Alt+Shift+H 会移到左边,按 Alt+Shift+L 会移到右边。

树状结构与手风琴布局

了解 AeroSpace 工作原理重要的一点是:它使用树状结构来组织窗口布局。当我们打开新终端时,内部表示为一个包含两个窗口的根节点,节点默认是平铺布局和水平方向。AeroSpace 中有两种布局:平铺(Tile)和手风琴/折叠(Accordion)布局。使用 Alt+/ 键绑定,可以在平铺布局下切换水平和垂直方向。按 Alt+/ 变为垂直方向,再按一次恢复为水平方向。若要改用手风琴布局,可按 Alt+逗号,现在窗口会层叠显示。手风琴布局也可设为水平或垂直。若为水平,切换窗口焦点可用 Alt 加上 H 和 L(左右)。如果想让手风琴垂直排列,再次按 Alt+逗号,此时切换窗口可按 Alt+J 向下,Alt+K 向上。若想回到平铺布局,只需再次按 Alt+/ 即可。

容器合并与窗口大小调整

假设要将终端窗口与 Chrome 窗口组合在一起,最好将这两个窗口合并到树中独立的容器里。目前只有一个容器,内有3个叶节点(即窗口)。我想让其中两个窗口拥有自己的父容器:按 Alt+L 向右聚焦,按 Alt+Shift+分号 进入服务模式,按 Alt+Shift+L 将当前窗口与右侧的 Chrome 窗口合并。现在这两个窗口有了自己的父容器。接着可以使用之前的命令操作这个独立容器的布局,比如按 Alt+逗号 将这两个窗口变为手风琴布局,或者按 Alt+/ 切换平铺方向。在服务绑定模式下,有4个使用 join 命令的键映射,专门用于将窗口合并到单个父容器中,操作后会自动返回主绑定模式。此外,还有智能调整窗口大小的键映射:使用 Alt+Shift+减号 或 Alt+Shift+等号 来缩小或放大窗口。如果父容器是水平的,将水平改变大小;如果是垂直的,将垂直改变大小。

多工作区管理与助记符技巧

接下来看看如何跨工作区移动。AeroSpace 提供了从 1 到 9 的数字工作区,以及从 A 到 Z 的字母工作区(部分字母被用作方向快捷键如 HJKL 除外)。按 Alt+数字(如 Alt+2)即可切换到对应工作区,菜单栏会显示当前状态。我们也可以用 Alt+Shift+数字或字母,将当前窗口(节点)移动到特定工作区。例如,按 Alt+Shift+2 会将 Chrome 移至工作区 2。我觉得使用字母工作区非常方便,因为可以利用助记符记住窗口位置。例如,Chrome 放在工作区 B(Browser),按 Alt+Shift+B 移入,按 Alt+B 切换查看;终端放在工作区 T(Terminal)。这样在浏览器和终端间切换非常直观。我个人偏好只使用少量带字母的工作区:B 代表浏览器,M 代表音乐和笔记,P 代表照片编辑,V 代表视频编辑,T 代表终端,其他临时任务使用数字工作区。默认情况下,移动窗口到新工作区时,视角不会自动跟随。如果你希望移动窗口的同时自动切换过去,可以在配置文件中将命令改为数组格式,添加 workspace 命令来实现。不过我个人倾向于将“移动窗口”和“切换工作区”这两个动作分开。

自动化回调:窗口分配与鼠标跟随

AeroSpace 提供了回调(Callbacks)功能,可以在特定事件发生时执行动作。例如,当检测到新窗口时,自动将其移到指定工作区。假设我想把所有新终端窗口自动移到工作区 T,可以在配置文件底部添加 [[on-window-detected]] 回调。我们需要添加一个 if.app-id 条件,指定应用程序的 ID。要获取应用 ID,可以在终端执行 aerospace list-apps,找到你使用的终端的 ID 并复制。在配置中设置:如果匹配该 ID,则执行将节点移至终端工作区 T 的命令。保存并重新加载配置后,每次按 Command+N 打开新终端,它都会自动分配到工作区 T。你可以为 Chrome 或任何其他应用重复此操作,实现应用与工作区的自动绑定。另一个非常有用的回调是焦点切换时的鼠标跟随。在配置文件中找到 on-focus-changed 回调,添加 move-mouse window-lazy-center 命令。保存重载后,当你用快捷键在窗口间切换焦点时,鼠标指针会自动移动到当前聚焦窗口的中心位置,这在多显示器或大屏幕上特别实用。

浮动窗口与全屏设置

接下来展示如何将当前焦点窗口设为浮动。使用默认配置,按 Alt+Shift+分号 进入服务模式,然后按 F 即可让窗口浮动。即使是浮动窗口,依然可以用 Alt 加上 H/L 在窗口间切换焦点。AeroSpace 也会自动将它认为应该浮动的窗口(如“系统偏好设置”)设为浮动。若想让浮动窗口重新平铺,再次进入服务模式按 F 即可。我还想在配置中添加一个全屏快捷键:绑定 Alt+Shift+F 来全屏当前焦点窗口(注意确保没有与其他键绑定冲突)。保存重载配置后,按 Alt+Shift+F 即可全屏当前窗口,再按一次恢复原状。

多显示器支持与 macOS 兼容性设置

最后提一下多显示器支持。AeroSpace 在多显示器下工作得很好。虽然我为了简化工作流程和缓解颈部疼痛,已经停用多显示器一段时间了,但默认配置中提供了相关快捷键:你可以使用 Alt+Shift+Tab 将当前工作区移动到下一个显示器,然后使用常规键绑定导航至该工作区进行操作。关于 AeroSpace 实现工作区的底层原理:当工作区不活动时,该工作区的窗口会被移到屏幕可视区域之外隐藏。因此,如果你按 Ctrl+上箭头 打开 macOS 自带的任务调度中心(Mission Control),它可能会显示异常,窗口看起来非常小。解决方法是打开 macOS 的“桌面与程序坞”设置,向下滚动到任务调度中心,开启“按应用程序对窗口进行分组”。这样设置后,任务调度中心的显示会恢复正常。需要注意的是,AeroSpace 的所有操作都运行在 macOS 的第一个桌面(空间)上。既然开始使用 AeroSpace,就不应再手动去切换 macOS 原生的桌面空间了。本视频到此结束,希望对你有所帮助。如果有疑问或反馈,请在评论区告诉我,下期见。

On this page