和我一起配置yabai
详细演示了 macOS 平铺式窗口管理器 yabai 及其配套工具 skhd 和 JankyBorders 的安装与配置流程。
UP主: 帕特里柯基 · 时长: 5:38 · 🔗 B站原视频
发布: 2024-03-03 · 收录: 2025-07-26
标签: macOS · yabai · 效率工具 · 窗口管理 · skhd
yabai 是什么:堆叠式 vs 平铺式
今天我们来聊聊 macOS 上的平铺式窗口管理器 yabai。在 macOS 中,窗口管理主要分为堆叠式和平铺式。
堆叠式管理方式中,窗口可以相互交叠。macOS 默认的窗口管理就属于堆叠式。
平铺式则强制要求 100% 的桌面空间利用率,让窗口占据各自的空间,不相互重叠。如果你是 Mac 用户,又偏好平铺式,就可以试试 yabai。
安装 yabai 并放置配置文件
安装 yabai 可以通过 Homebrew。安装结束后,在终端输出的信息中找到 yabai 提供的初始配置文件。
我们需要把它复制到本地的 yabai 配置目录下。我不习惯把配置文件放在根目录下,所以这里我选择在 ~/.config 目录下创建叫 yabai 的目录,再把配置文件复制进去。yabai 也能识别这个路径下的配置文件,所以效果是相同的。
启动 yabai 与权限设置
有了配置文件后,我们就可以启动 yabai 了。
但是 yabai 会要求提供辅助功能权限,给就行,然后重启 yabai。可以看到终端窗口自动铺满屏幕了。
此时 yabai 还会要求提供屏幕录制权限。官方解释是某些窗口动效需要这个权限。由于我个人不在乎窗口动效,所以这里我不管它。
调整间隙与鼠标修饰键
现在我们来修改 yabai 提供的配置文件。默认配置已经符合大多数人的使用习惯了,所以我想尽量保留。
你可以通过相关配置来调整窗口之间的间隙。滚动到文件底部,我个人习惯把鼠标修饰键从 fn 改成 alt。
为了使修改后的配置生效,我新建一个终端运行命令重启 yabai。现在我已经可以按住键盘上的 alt 键,然后通过鼠标拖拽来控制窗口了。
排除不想被管理的应用窗口(规则示例)
如果我们不希望 yabai 管理某些应用的窗口,比如系统设置,该怎么办?yabai 提供了很多细化的管理规则。
在配置文件中加入一行规则,意思是只要应用的名称是 System Settings 或者“系统设置”,就不管理它。重启 yabai 后,就可以随意拖拽系统设置的窗口了。
再举个例子:我希望 yabai 只管理 B 站客户端的主窗口,但让我可以自由拖拽视频窗口。只需要加入一行规则:意思是对于应用“哔哩哔哩”,如果它的标题不等于某个指定标题,就不管理它。
再次重启后,yabai 会发现 B 站客户端主窗口自动平铺,但是随便打开一个视频后,可以自由拖拽视频窗口。
你可能会问我是如何知道这么复杂的窗口名称的。只要运行一行命令,就可以获取所有窗口的信息。
安装 JankyBorders(窗口边框高亮)
评论中有很多朋友问窗口的边框高亮是怎么实现的,这是一个叫 JankyBorders 的 yabai 附属软件,在它的 GitHub 页面下可以找到安装教程。
首先通过 Homebrew 安装,然后在 yabai 的配置文件结尾处加上一行配置,再重启 yabai,就有窗口边框高亮效果了。边框的颜色、宽度和发光效果都是可以调整的,方法很简单,大家可以自行参考刚刚的 GitHub 页面。
安装与配置 skhd(绑定快捷键操作窗口)
yabai 除了自动平铺窗口之外,还能对窗口做各种操作。可惜在不借助任何其他工具的情况下,这些操作只能通过命令行实现。
比如这里我有两个窗口,不使用鼠标的情况下,我可以通过 yabai 命令来切换窗口的激活状态、交换窗口位置等。可我们总不能每次调整窗口都打开终端来执行命令。
yabai 的作者考虑到了这一点,写出了 skhd。skhd 可以帮你将任何 yabai 命令绑定到任意的键盘快捷键。
skhd 也可以通过 Homebrew 安装。安装结束后,同样给予辅助功能权限。在终端输出的信息中复制初始配置文件的路径,然后在 ~/.config 目录下创建 skhd 目录,再把初始配置文件复制进去。
用 Neovim 打开 skhd 的配置文件,里面有很多说明,感兴趣的朋友可以自行阅读。这里我把文件清空,然后加入内容:
- 通过
control + command + HJKL切换窗口的激活状态 - 通过
control + alt + HJKL交换窗口位置
保存文件后重启 skhd,这时快捷键已经生效了。
SIP(系统完整性保护)是否要关闭
yabai 提供十分丰富的窗口、桌面操作命令,加之它可以配合 shell script 来使用,更是大大增加了它的灵活性。大家可以前往它的 GitHub 页面下自取所需。
值得一提的是,要获得 yabai 的完整体验,可能需要关闭系统完整性保护(SIP)。关闭 SIP 后增加的小部分功能对我来说可有可无,而且我认为安全性大于一切,所以我并没有关闭 SIP,这一点请大家自行决定。
结尾
这就是本期视频的全部内容,我们下期视频再见。