niri for macOS:niri 能在 Mac 上运行吗?

简单来说:不能。niri 是 Linux 上的 Wayland 合成器,而 macOS 无法运行这类软件。但 niri 的工作流可以在 Mac 上实现。本文会讲清楚哪些能力可以照搬、有哪些方案可选,以及你的 niri 快捷键和配置在 Mac 上分别对应什么。

结论

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 模型。

这不是视频,而是一个可以操作的 ChainYourMac 模型。拖动标题栏可以调整顺序,点击程序坞图标打开应用,点红色按钮关闭窗口。在真正的应用中,每个按键都要配合 ⌃⌥ 一起按。这个演示两种按法都支持。

  • 已通过 Apple 公证
  • 使用 Developer ID 签名
  • 无需账号,应用内无遥测
  • 只需要辅助功能权限
  • 自动更新

在 macOS 上实现 niri 式滚动的所有方法

以下信息于 2026 年 10 月 6 日对照各项目自己的代码仓库核实:

ChainYourMacOmniWMPaperWM.spoonAeroSpaceyabai
像 niri 一样的滚动长条有有(另有 Dwindle)有无(类似 i3 的树形布局)无(BSP)
macOS13 Ventura 及以上26 Tahoe 及以上能运行 Hammerspoon 即可13 及以上见其 README
芯片Apple 芯片Apple 芯片见各项目的 README
触控板滚动有,紧跟手指有,二 / 三 / 四指有不适用不适用
堆叠 / 标签页列都有都有堆叠手风琴布局堆叠布局
工作区macOS 空间自有工作区macOS 空间自有(模拟)macOS 空间
配置方式图形界面(TOML 可选)图形界面 + TOMLLua(init.lua)TOMLShell 脚本 + 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 吗?

没有 niri 本身,但有基于同样理念的 Mac 应用。ChainYourMac(付费,macOS 13 及以上)、OmniWM(免费,macOS 26 Tahoe 及以上)和 PaperWM.spoon(免费,Hammerspoon 脚本)都像 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。