堆叠
把多个窗口放进同一列。可以把窗口并入左侧或右侧的列,再把它移出来,在堆叠内调整顺序,也可以把任意窗口调高或调矮。
新版ChainYourMac 2.1 现已发布
所有窗口并排排列在一条无限延伸的长条上,就像 Linux 上的 PaperWM 和 niri。窗口不会互相重叠,也不会被别的窗口挡住,再多开一个应用也不会把其他窗口挤小。你只需要滚动。
一次性购买,终身授权。需要 macOS 13 或更高版本,Apple 芯片 Mac。
这不是视频,而是一个可以操作的 ChainYourMac 模型。拖动标题栏可以调整顺序,点击程序坞图标打开应用,点红色按钮关闭窗口。在真正的应用中,每个按键都要配合 ⌃⌥ 一起按。这个演示两种按法都支持。
yabai、Amethyst 和 AeroSpace 这类网格式平铺工具,每打开一个应用就要重新分割一次屏幕,所有窗口只会越来越小。ChainYourMac 是一款可滚动的平铺窗口管理器:每个窗口都是横向长条上的一列,长条一直延伸到显示器边缘之外。新窗口会在你正在使用的窗口旁边打开,其他窗口保持原来的大小。
每多一个新窗口,同一块屏幕就被切得更碎。
变长的是长条,每个窗口都保持你设定的宽度。
启动一个应用,它的窗口就会紧挨着你刚才使用的窗口出现。每个窗口在长条上都有自己的位置,所以不会重叠,也不会被别的窗口挡住找不到。
用键盘移动焦点,或在触控板上滑动。长条只滚动到刚好能看到该窗口的位置,弹簧动画在你按下按键的瞬间就开始。
重启之后,列的顺序、宽度和堆叠都会恢复。每台显示器、每个空间都有自己的长条,工作窗口和聊天窗口永远不会混在一起。
如果你一直在找 Mac 版 PaperWM 或 macOS 版 niri,这就是同样的滚动式模型,只是更有 Mac 的样子:用设置窗口代替配置文件,触控板滑动紧跟手指,也不需要改动 SIP。下面每张图都是可以操作的,按键试试看。
把多个窗口放进同一列。可以把窗口并入左侧或右侧的列,再把它移出来,在堆叠内调整顺序,也可以把任意窗口调高或调矮。
当每个窗口都需要占满整个高度时,把堆叠变成标签页。一个快捷键就能在堆叠和标签页之间切换,标签栏会显示这一列里有哪些窗口。
在你选定的宽度之间循环切换,比如 25%、33%、50%、66% 和 75%,也可以一点点调宽或调窄。全宽和居中各只需一个按键。
窗口之间以及屏幕边缘的间距都可以设置,最小可以为零。窗口会根据程序坞自动调整大小,不会被程序坞挡住。
MacBook
外接显示器
每台显示器都有自己的长条,焦点和滚动位置互不影响。列会紧贴屏幕边缘,不会伸到旁边的屏幕上;一个快捷键就能把当前窗口发送到下一台显示器。你还可以在 Configuration → Displays 中为任意一台显示器单独关闭 ChainYourMac,那里的窗口会保持在你放置的位置,适合演示用的屏幕或竖屏显示器。
用三指或四指滑动,长条会 1:1 跟随手指移动,然后停在最近的一列上。在本页任意演示上横向滚动就能感受到。
chainyourmac:// URL scheme、Raycast 脚本命令和命令行工具。全新安装时默认使用 Control-Option(⌃⌥)组合,搭配 Vim 键或方向键。单独的 ⌥ 留给 macOS,用于按单词跳转和输入 ç、® 这类字符。在你自己的键盘上按下组合键,这里对应的按键就会亮起来。
以上是全新安装时的默认设置。每个快捷键都可以重新绑定,一个操作可以有多个快捷键,录制功能支持 AZERTY、QWERTZ 和 Dvorak 布局。从旧版本升级?你的快捷键会原样保留,应用里的 Shortcuts 页面可以一键切换到新的快捷键方案。从 niri 转过来?请看 niri for Mac 指南,以及 niri 全部快捷键与 ChainYourMac 对照表(英文)。
窗口引擎用 Rust 编写,作为一个小型后台进程运行。动画是与垂直同步(vsync)锁定的弹簧动画,按下按键的瞬间就开始;快捷键也由引擎直接处理,所以在长条上移动的反应非常即时。
你看到的应用是原生 SwiftUI:一个菜单栏图标,加上一个每个选项都有对应控件的设置窗口。没有 Electron,没有网页视图,也没有需要学习的配置文件。它只需要一项权限——辅助功能,因为 macOS 只允许窗口管理器通过它来移动窗口。
无需订阅,无需账号。
终身授权 · 1 台 Mac
$19.99
一次性购买,永久免费更新。
需要 macOS 13 Ventura 或更高版本,Apple 芯片 Mac。付款由 Dodo Payments 处理(结账页面为英文)。
需要在多台 Mac 上使用?同样是终身授权,一个密钥全部搞定。
滚动式窗口管理器不会把窗口硬塞进固定的网格,而是把它们并排放在一条延伸到屏幕边缘之外的横向长条上。你用触控板手势或快捷键滚动长条来切换窗口,每个窗口都保持你设定的大小。打开新应用,不会让其他窗口缩小或重新排列。
是的,这正是它的初衷。PaperWM(GNOME)和 niri(Wayland)让滚动式窗口管理在 Linux 上广受喜爱,ChainYourMac 则把同样的模式以精心打磨的原生应用带到 macOS:SwiftUI 界面、Rust 引擎、紧跟手指的触控板滑动,每项设置都有图形界面。不需要 Hammerspoon 脚本,也不需要配置文件。
Rectangle 和 Magnet 是窗口吸附工具——你需要一个一个窗口地去操作,它们并不维护布局。yabai、Amethyst 和 AeroSpace 这类平铺管理器会维护布局,但用的是网格:每个新窗口都会让其他窗口重新调整大小。
ChainYourMac 维护布局,但不用网格。窗口在无限延伸的长条上保持各自的大小,你只需要滚动。既有平铺窗口管理器的自动化,又不会让工作区在你眼皮底下不停重排。
标准授权适用于 1 台 Mac,价格 $19.99。需要更多台?还有 3 台($49.99)、5 台($79.99)和 20 台($299.99)的终身授权。你也可以随时把激活转移到另一台 Mac,只需先在应用中停用即可。
ChainYourMac 支持搭载 Apple 芯片(M1 或更新)的 Mac,系统需为 macOS 13 Ventura 或更高版本。不支持 Intel 芯片的 Mac。它是一款普通应用,已通过 Apple 公证并使用 Developer ID 签名——没有内核扩展,不修改系统,也不需要关闭 SIP(这一点和某些平铺管理器不同)。
macOS 只允许应用通过辅助功能 API 来移动和调整其他应用的窗口,所以 ChainYourMac 需要这项权限才能工作——Rectangle、Magnet 以及其他所有窗口管理器需要的也是同一项权限。这是应用唯一请求的权限。所有处理都在你的 Mac 本地完成;应用不会读取你的屏幕内容,也不会向任何地方发送数据。
支持。每台显示器都有独立的长条,焦点和滚动位置各自独立;窗口会紧贴屏幕边缘,不会溢出到相邻屏幕;按一下快捷键就能把当前窗口发送到下一台显示器。你也可以在 Configuration → Displays 中为任意显示器关闭 ChainYourMac,那里的窗口会保持在你放置的位置。macOS 的空间(Spaces)同样支持——每个空间都保留各自的长条布局。
应该不会。引擎用 Rust 编写,作为一个小型后台进程运行,在窗口发生变化或你按下快捷键之前都处于空闲状态。整个应用里没有 Electron,也没有任何网页运行时。
付款由 Dodo Payments 处理。付款后你会立即拿到下载文件(标准的 .dmg),授权密钥会通过邮件发送。在应用中输入密钥即可。换新 Mac?先在旧 Mac 的应用里停用授权,再在新 Mac 上激活——或者发邮件给支持,我们来帮你处理。