niri for macOS:niri 能在 Mac 上运行吗?
简单来说:不能。niri 是 Linux 上的 Wayland 合成器,而 macOS 无法运行这类软件。 但 niri 的工作流 可以在 Mac 上实现。本文会讲清楚哪些能力可以照搬、有哪些方案可选,以及你的 niri 快捷键和配置在 Mac 上分别对应什么。
2026年10月更新 · 约 11 分钟阅读
结论
niri 无法安装在 macOS 上。 niri 是 Linux 上的 Wayland 合成器,它会取代整个显示服务器,而 macOS 不允许这样做。不过,你仍然可以在 Mac 上获得 niri 的工作流 :排在无限延伸的横向长条上的列、左右移动焦点、预设宽度,以及触控板滚动。有三款应用可以做到:ChainYourMac (付费,macOS 13 及以上)、OmniWM (免费,仅限 macOS 26 Tahoe)和 PaperWM.spoon (免费,Hammerspoon 中的 Lua 脚本)。如果你用的是 Linux,直接用 niri 就好,它非常出色。
niri 是什么
niri 对自己的描述是“a scrollable-tiling Wayland compositor”(一个可滚动平铺的 Wayland 合成器)。它用 Rust 编写,采用 GPL-3.0 许可证。它的第一个版本发布于 2023 年底,现在使用日历版本号,最新版本是 v26.04(2026 年 4 月) 。它的 README 用一句话概括了这个模型:窗口以列的形式排在一条向右无限延伸的长条上,并且打开新窗口永远不会改变已有窗口的大小 。
还有几点构成了 niri 的独特体验:
每台显示器一条长条。 每台显示器都有自己的长条,窗口永远不会溢出到下一块屏幕上。
动态纵向工作区。 每台显示器上的工作区纵向堆叠,最下面始终留着一个空工作区。
灵活的列。 一列可以纵向堆叠多个窗口,也可以用标签页显示,还可以在预设宽度之间循环切换。
手势与细节打磨。 它有触控板手势、可以缩小查看的 Overview、基于自定义着色器的动画、模糊、渐变边框,以及修改后立即生效的 KDL 配置文件。
niri 的 README 写道,它“heavily inspired by PaperWM”(深受 GNOME 扩展 PaperWM 的启发),并列出了其他平台上实现滚动式平铺(“tile scrollably elsewhere”)的项目,其中包括两个 macOS 方案。这段渊源可以参考 niri vs PaperWM (英文)。
为什么 niri 无法在 macOS 上运行
niri 不是一个运行在桌面之上的应用,而是一个合成器 :在 Linux 上,它取代了整个显示层。它直接和 GPU 打交道,从内核接收输入,绘制每一个像素,并通过 Wayland 协议与应用通信。而这些在 macOS 上都不存在:
macOS 没有 Wayland。Mac 应用通过 Apple 的框架绘制界面,而不是 Wayland 客户端。
Apple 的 WindowServer 是唯一的合成器,它属于受保护的系统组件。无论 SIP 开启还是关闭,第三方软件都无法替换它。
输入、显示器配置和窗口绘制,全部都要经过 Apple 的 API。
所以“把 niri 移植到 macOS”并不是花多少功夫的问题,而是 macOS 的架构从根本上就排除了这种可能。在 Linux 虚拟机里运行 niri,得到的只是一个窗口里的 niri,而不是能管理你 Mac 应用的 niri。本文介绍的所有 Mac 工具都走了另一条路:配合 macOS 工作,通过辅助功能 API 移动真实的窗口,窗口的绘制仍交给 Apple。
哪些能搬到 Mac 上,哪些不能
niri 的概念 在 Mac 上(使用 ChainYourMac)
无限延伸的横向长条,打开新窗口不改变大小 支持。这就是核心模型
左右聚焦 / 移动列 支持,⌃⌥←/→ 和 ⌃⌥⇧←/→(可重新绑定)
一列中放多个窗口 支持,堆叠:并入、移出、调整顺序、调高 / 调矮
标签页式的列 支持,带标签栏的标签页列
preset-column-widths、maximize-column、center-column 支持:预设宽度、全宽、居中(另有 never / on-overflow / always 三种模式)
每台显示器一条长条 支持。窗口留在各自的显示器上
触控板滑动滚动视图 支持,紧跟手指(默认四指,可选三指)
浮动窗口 支持:⌃⌥T、按应用设置规则,固定大小的小窗口自动浮动
动态纵向工作区 + Overview 不支持。改用 macOS 的空间和调度中心;每个空间都有自己的长条
合成器特效:着色器、模糊、圆角裁切 不支持。窗口由 Apple 绘制。只有可选的焦点边框和淡化效果
屏幕外的窗口完全隐藏 基本可以。macOS 会让屏幕外的窗口在角落里露出一小条
KDL 配置,实时重载 即时生效的图形界面,另有可选的 TOML 文件
动画的实现方式也不一样。在 niri 中,由合成器直接为真实的画面帧制作动画。在 macOS 上,窗口管理器是通过辅助功能 API 每秒多次移动窗口来实现动画的。ChainYourMac 用与显示器刷新率同步的弹簧动画来驱动这种移动。手感很流畅,但原理不同,而且不同应用在调整大小时的流畅程度也会有差异。
直接在这里上手操作——这不是视频,而是一个可以操作的 ChainYourMac 模型。
终端
~/project ❯ git statusOn branch main nothing to commit ~/project ❯ cargo testrunning 42 tests test result: ok ~/project ❯
← 聚焦左侧
→ 聚焦右侧
⇧ ← 向左移动
⇧ → 向右移动
R 切换宽度
F 全宽
C 居中
] 堆叠
⇧ ] 移出
⇧ T 标签页
焦点边框
淡化非活动窗口
这不是视频,而是一个可以操作的 ChainYourMac 模型。拖动标题栏可以调整顺序,点击程序坞图标打开应用,点红色按钮关闭窗口。在真正的应用中,每个按键都要配合 ⌃ ⌥ 一起按。这个演示两种按法都支持。
ChainYourMac 示意:窗口并排排列在一条延伸到屏幕边缘之外的长条上。启用 JavaScript 即可使用实时演示。
已通过 Apple 公证
使用 Developer ID 签名
无需账号,应用内无遥测
只需要辅助功能权限
自动更新
在 macOS 上实现 niri 式滚动的所有方法
以下信息于 2026 年 10 月 6 日对照各项目自己的代码仓库核实:
ChainYourMac OmniWM PaperWM.spoon AeroSpace yabai
像 niri 一样的滚动长条 有 有(另有 Dwindle) 有 无(类似 i3 的树形布局) 无(BSP)
macOS 13 Ventura 及以上 26 Tahoe 及以上 能运行 Hammerspoon 即可 13 及以上 见其 README
芯片 Apple 芯片 Apple 芯片 见各项目的 README
触控板滚动 有,紧跟手指 有,二 / 三 / 四指 有 不适用 不适用
堆叠 / 标签页列 都有 都有 堆叠 手风琴布局 堆叠布局
工作区 macOS 空间 自有工作区 macOS 空间 自有(模拟) macOS 空间
配置方式 图形界面(TOML 可选) 图形界面 + TOML Lua(init.lua) TOML Shell 脚本 + skhd
SIP 改动 无需 无需 无需 无需 可选,用于额外功能
价格 $19.99 一次性购买 免费,GPL-2.0 免费,MIT 免费,MIT 免费,MIT
ChainYourMac:适用于 macOS 13 及以上的原生 niri 风格应用
ChainYourMac 起源于一句话:“niri wasn't for Mac, so I made one.”(niri 没有 Mac 版,所以我自己做了一个。)它由 Rust 引擎和 SwiftUI 设置应用组成。它只做一种布局——滚动长条——但做得很深:可以从左右两侧组建的堆叠、标签页列、预设宽度以及加宽 / 变窄、全宽、居中模式、导航时显示的长条小地图、拖动标题栏调整顺序,以及在重启后保留列顺序、堆叠和标签页的会话恢复。所有设置都在即时生效的图形界面里,快捷键录制也支持 AZERTY、QWERTZ 和 Dvorak 布局。
优点: 支持 macOS 13 到 26;不需要配置文件;只需要辅助功能权限;使用原生空间;可以直接发邮件给开发者。缺点: 付费;闭源;仅支持 Apple 芯片;只有滚动布局,没有 BSP 模式。
OmniWM:免费且功能丰富,但仅限 Tahoe
OmniWM (v0.7.5,2026 年 10 月 5 日;仓库已迁移到 OmniNull/OmniWM)是一款免费的 GPL-2.0 窗口管理器,每个工作区可以选择 niri 风格的滚动容器或 Hyprland 风格的 Dwindle。它还有一长串额外功能:quake 式终端、暂存区(scratchpad)、Overview、命令面板,以及 omniwmctl 命令行工具。用二指、三指或四指的触控板手势就能滚动列。
优点: 免费开源;开发非常活跃;两种布局;高级功能多。缺点: 需要 macOS 26 Tahoe 或更高版本 ;需要辅助功能和 输入监控两项权限;使用自有工作区,每台显示器只用一个 macOS 空间。完整对比见 ChainYourMac vs OmniWM (英文);如果你没在用 Tahoe,可以看看 OmniWM 替代品 (英文)。
PaperWM.spoon:免费、可脚本化,运行在 Hammerspoon 中
PaperWM.spoon 是一个用 Lua 为 Hammerspoon 编写的“tiled scrollable window manager for MacOS”。它采用 MIT 许可证,仍在积极维护,并支持触控板滑动滚动。安装方法是把它克隆到 Spoons 文件夹,然后编辑 init.lua。
优点: 免费;可以无限脚本化;只要能运行 Hammerspoon 就能用。缺点: 你得自己维护一套 Lua 配置;它的 README 提醒,屏幕外的窗口会在边缘露出来,多显示器下也有一些怪问题。分步教程见 PaperWM.spoon 安装指南 (英文)。
AeroSpace 和 yabai:出色的平铺工具,但不是 niri
每次讨论“niri macos”都会提到这两个,所以有必要说清楚。AeroSpace 是一个“i3-like tiling window manager”(类 i3 平铺窗口管理器,公开测试版,v0.21.3-Beta)。yabai 用二叉空间分割(BSP)来平铺(v7.1.25)。两者都很优秀,但都没有滚动式布局。每打开一个新窗口,可见屏幕就会被重新分割,其他窗口随之重排——这正是 niri 当初要避免的。如果你确实想要 i3 那样的行为,请看 ChainYourMac vs AeroSpace 和 vs yabai (均为英文)。
此外还有一些较小的项目:Nehir 是 OmniWM 的纯滚动式分支,komorebi for Mac (早期版本,v0.1.x)也列出了滚动式布局。
在 Mac 上使用你的 niri 快捷键
niri 的默认快捷键使用 Mod 键,在实际会话中就是 Super 键。而在 Mac 上,⌘ 属于各个应用(⌘C、⌘W、⌘Q),单独的 ⌥ 用来输入字符和按单词移动。所以 ChainYourMac 把窗口管理器的操作放在 Control+Option(⌃⌥) 上,同时保留了 niri 的按键布局:
操作 niri 默认 ChainYourMac 2.1 默认
向左 / 右聚焦列 Mod+Left/Right、Mod+H/L ⌃⌥←/→、⌃⌥H/L
向左 / 右移动列 Mod+Ctrl+Left/Right ⌃⌥⇧←/→
切换预设宽度 Mod+R ⌃⌥R
最大化列(全宽) Mod+F ⌃⌥F
列居中 Mod+C ⌃⌥C
并入 / 移出窗口(consume / expel) Mod+[ / Mod+] ⌃⌥] / ⌃⌥[ 堆叠,⌃⌥⇧] / ⌃⌥⇧[ 移出
标签页列 Mod+W ⌃⌥⇧T
切换浮动 Mod+V ⌃⌥T
触控板:滚动长条 三指横向滑动 四指滑动(可选三指)
所有快捷键都可以重新录制,一个操作也可以绑定多个快捷键。完整的对照表包括第一列 / 最后一列、列宽、高度和显示器相关操作,以及哪些操作没有对应项,详见 niri keybindings on Mac (英文)。
在 Mac 上对应你的 niri 配置
niri 用户真正会去调的布局选项,ChainYourMac 里都有,既可以在应用设置里调整,也可以写在可选的 TOML 文件中:
preset-column-widths → Preset Window Widths (preset_column_widths)。默认值为 25%、33%、50%、67% 和 75%;niri 默认为 1/3、1/2 和 2/3。
gaps 16 → gap_inner 和 gap_outer,分别设置,单位为点(默认 8)。
center-focused-column "never" | "on-overflow" | "always" → center_focused_column,同样的三个值,默认值也相同。
focus-follows-mouse / warp-mouse-to-focus → focus_follows_mouse / mouse_follows_focus,和 niri 一样默认都关闭。
focus-ring → 可选的 focus_border,可设置颜色、宽度和圆角,默认关闭。
窗口规则、动画、输出(outputs)和工作区的逐行对照,见 niri config on macOS (英文)。
多显示器与空间
每台显示器独立的长条,是 niri 诞生的重要原因之一。它的 README 写道,窗口永远不会“overflow”(溢出)到相邻的显示器上。ChainYourMac 在 macOS 上遵循同样的规则:每台显示器都有自己的长条,焦点和滚动位置各自独立;靠近屏幕边缘的窗口会紧贴边缘,而不是伸到下一块屏幕上。⌃⌥N 把窗口发送到下一台显示器;把窗口拖到另一台显示器上,它就会加入那台显示器的长条;在 Configuration → Displays 中可以让任意一台显示器不受管理。
工作区方面,ChainYourMac 使用 macOS 的空间 (Spaces),每个空间都有自己的长条。你可以用调度中心的滑动手势切换,或者用 Control+数字 快捷键切换(前提是你已在“系统设置 → 键盘 → 键盘快捷键 → 调度中心”中启用)。这和 niri 的纵向工作区不同,但它是原生机制,所以能和全屏应用以及 macOS 的其他一切功能正常配合。OmniWM 则采用相反的做法:在每台显示器的单个空间上运行自己的工作区。
该选哪一个?
适合用 niri 的情况
你用的是 Linux,或者愿意换到 Linux。它免费、开源,而且非常出色。
适合用 OmniWM 的情况
你在用 macOS 26 Tahoe,想要免费开源,并且会用到暂存区、Overview 或命令行这类额外功能(完整对比 ,英文)。
适合用 PaperWM.spoon 的情况
你已经离不开 Hammerspoon,并且乐于维护 Lua 配置(安装指南 ,英文)。
适合用 ChainYourMac 的情况
你在 Apple 芯片的 Mac 上使用 macOS 13 Ventura、14 Sonoma、15 Sequoia 或 26 Tahoe,希望长条用起来就像系统自带的一样;
比起维护配置文件,你更愿意在图形界面里调整设置;
你希望遇到问题时,能直接发邮件给开发者。
niri 的工作流,就在你现在用的 Mac 上。
无限延伸的长条、堆叠、标签页列、预设宽度,还有紧跟手指的触控板滑动——支持 macOS 13 Ventura 到 26 Tahoe,几分钟就能设置好。
购买 ChainYourMac — $19.99
一次性购买 · 永久免费更新 · macOS 13+,Apple 芯片
常见问题
可以在 macOS 上安装 niri 吗?
不可以。niri 是一个 Wayland 合成器:在 Linux 上,它本身 就是显示服务器,负责绘制每一个窗口、管理每一台显示器。macOS 的窗口由 Apple 的 WindowServer 绘制,任何第三方应用都无法替换它,而且 macOS 根本不运行 Wayland。没有任何 Homebrew 配方、移植版或编译选项能改变这一点。你能安装的,是在 Mac 上重现 niri 滚动式布局的应用——见上文介绍的几种方案。
有 Mac 版的 niri 吗?
macOS 上最好的 niri 替代品是什么?
取决于你的 macOS 版本,以及你喜欢怎样配置。在 macOS 13 Ventura、14 Sonoma 或 15 Sequoia 上,OmniWM 无法运行,所以可选的是 ChainYourMac(原生应用,图形界面设置)或 PaperWM.spoon(Lua)。如果你用的是 macOS 26 Tahoe,OmniWM 也是很不错的免费选择。完整排名见 Mac 上最好的滚动式窗口管理器 (英文)。
支持像 niri 那样的触控板滑动吗?
支持。niri 用三指横向滑动来滚动视图。ChainYourMac 默认用四指滑动,长条会 1:1 跟随手指移动——因为 macOS 把三指手势留给了自己——你也可以在设置中改成三指。OmniWM 和 PaperWM.spoon 同样支持用触控板滑动来滚动。需要修改哪些 macOS 触控板设置,请看安装指南 (英文)。
能像 niri 一样支持多显示器吗?
能。和 niri 一样,ChainYourMac 为每台显示器提供独立的长条,窗口不会溢出到相邻的屏幕上。⌃⌥N 可以把窗口发送到下一台显示器,把窗口拖到另一台显示器上,它就会加入那台显示器的长条;在 Configuration → Displays 中还可以为任意一台显示器单独关闭 ChainYourMac。
niri 的纵向工作区怎么办?
macOS 有自己的工作区:空间(Spaces)。ChainYourMac 直接使用空间,而不是另造一套系统,每个空间都有自己的长条。它没有 niri 那种可以用 Overview 缩小查看的动态纵向工作区;在 macOS 上最接近的是调度中心(Mission Control)。
能在 Mac 上沿用我的 niri 快捷键吗?
基本可以,只是修饰键不同。ChainYourMac 的默认快捷键在 Control+Option 上沿用了 niri 的布局:⌃⌥←/→ 聚焦列,⌃⌥⇧←/→ 移动列,⌃⌥R 切换预设宽度,⌃⌥F 全宽,⌃⌥C 居中。每个快捷键都可以重新录制。完整对照表见 niri keybindings on Mac (英文)。
能直接用我的 niri config.kdl 吗?
不能直接用——ChainYourMac 不读取 KDL。不过重要的布局选项都有对应设置(预设列宽、间距、center-focused-column、focus-follows-mouse),全部可以在设置窗口里调整。逐行对照见 niri config on macOS (英文)。
是免费的吗?
niri 是免费开源软件,但只能在 Linux 上用。ChainYourMac 是付费软件:一台 Mac 一次性购买 $19.99,免费更新,没有订阅。如果你想在 Mac 上找免费的,OmniWM(仅限 macOS 26 Tahoe)和 PaperWM.spoon 都是免费开源的。
ChainYourMac 是 niri 的移植版吗?
不是。它是一款独立的 macOS 应用,基于 niri 和 PaperWM 所用的同一种滚动式模型。它们共享的是理念和长条布局,而不是 niri 的代码。和 niri 一样,它的引擎用 Rust 编写;设置应用则是 SwiftUI。
需要关闭 SIP 吗?
不需要。ChainYourMac 和普通 Mac 应用一样安装,只需要标准的辅助功能权限。不改 SIP,也没有内核扩展。OmniWM 和 PaperWM.spoon 同样不需要改动 SIP。