☰
Paneru vs Yabai vs Niri:macOS滑动平铺窗口管理器横向对比与选择建议
2026/10/4 17:15:03 网站建设 项目流程

Paneru vs Yabai vs Niri:macOS滑动平铺窗口管理器横向对比与选择建议

【免费下载链接】paneruA sliding, tiling window manager for MacOS.项目地址: https://gitcode.com/gh_mirrors/pan/paneru

Paneru 是一款面向 macOS 的滑动平铺窗口管理器,它把窗口排列在一条无限延伸的横向条带上,开新窗口也绝不会挤动已有窗口。本文横向对比 Paneru、Yabai 与 Niri 三款窗口管理器的布局哲学、系统要求与生态差异,并给出快速选择指南,帮你挑到最适合自己的 macOS 平铺窗口管理器。

三款窗口管理器,一句话说清它们是什么

  • Paneru:macOS 上的滑动平铺窗口管理器,窗口排在无限横向条带上,向右滑动浏览,灵感来自 Niri 的滚动平铺体验,用 Rust + Bevy ECS 构建。
  • Yabai:macOS 上老牌的经典网格平铺窗口管理器,用 C 编写,生态成熟(常搭配 skhd 等工具),但网格会随新窗口不断分割重排。
  • Niri:Linux 上的滚动平铺 Wayland 合成器,"可滚动平铺"这一玩法的鼻祖,Paneru 正是想把它带到 macOS 上。

💡 三者并非同一赛道的直接竞品:Yabai 和 Paneru 都跑在 macOS 上,可以对比取舍;Niri 只在 Linux(Wayland)上运行,它的存在更多是帮你理解"滑动平铺"这个理念的来龙去脉。

核心差异速览:一张表看懂三大窗口管理器

维度PaneruYabaiNiri
支持平台macOSmacOSLinux(Wayland)
布局模型无限横向滑动条带固定网格分割无限横向滚动条带
打开新窗口时已有窗口保持原尺寸已有窗口被重新分割、缩放已有窗口不动,新窗口可滚动查看
系统要求授予辅助功能(Accessibility)权限需关闭系统完整性保护(SIP)才能完整使用需 Wayland 会话
工作区原生 macOS Spaces + 虚拟工作区(实验性)原生 SpacesFocus Mode 等原生机制
脚本能力内置 Lua 运行时(paneru.setup/paneru.on/paneru.bind)依赖 skhd、Hammerspoon 等外部工具配置文件 + 内置脚本
输入方式键盘快捷键 + 触摸板滑动手势 + 滚轮键盘快捷键为主键盘 + 触摸板/滚轮
开发语言Rust(Bevy ECS)CRust

📌 最直观的区别在于**"新窗口进来时,旧窗口怎么办"**:Yabai 的网格会被持续切割,窗口越开越小;Paneru 和 Niri 的滑动条带则让每个窗口尺寸稳定,新窗口排到条带末端,滑动即可看到——这正是"滑动平铺"解决的核心痛点。

Paneru 的四大亮点体验

1️⃣ 新窗口永不挤动已有布局

这是 Paneru 的核心设计原则:窗口条带向右无限延伸,打开新应用只会在末端追加,你精心调整过的列宽、堆叠全部原样保留。多开浏览器、IDE、终端时,布局稳定性是它和传统网格平铺最大的体感差异,具体平铺算法见 src/ecs/layout.rs。

2️⃣ 触摸板滑动手势,滑动窗口如丝般顺滑

Paneru 为触摸板用户量身设计:三指滑动、滚轮 + 修饰键都能推动整条窗口条带,还带惯性和吸附(实现在 src/ecs/scroll.rs)。配合focus_follows_mouse(焦点跟随鼠标),少点一次鼠标就能切换窗口。

3️⃣ 原生 Spaces + 虚拟工作区的双层管理

每个显示器有自己独立的窗口条带,配合 macOS 原生 Spaces 键盘/手势切换;还可以在同一 Space 内堆叠多行条带,用虚拟工作区按任务分组,菜单栏自带当前工作区指示器。相关逻辑集中在 src/ecs/workspace.rs。启动时它还能恢复上次的窗口布局、虚拟工作区和显示器分配,重启不丢现场。

4️⃣ 内置 Lua 运行时 + 配置热重载

Paneru 默认内嵌 LuaJIT,可以直接用一个 Lua 脚本声明全部配置、挂接窗口事件(如"窗口聚焦时自动均衡宽度")、绑定快捷键——无需依赖任何外部脚本框架,完整用法见 SCRIPTING.md。TOML 与 Lua 配置均支持保存即热重载,调键位不用重启。状态查询也开箱即用:paneru query state --json输出结构化 JSON,paneru subscribe --json可持续订阅焦点、标题、工作区变化事件(协议详见 QUERY_AND_SUBSCRIBE_FORMAT.md),方便接入状态栏或自动化工具。

安装与系统要求:运行前的 3 个设置

⚠️ Paneru 和 Yabai 一样依赖 macOS 的非原生接口,但要求更温和:

  1. 授予辅助功能权限:首次运行会弹窗请求,或在"系统设置 → 隐私与安全性 → 辅助功能"中开启;
  2. 开启"显示器具有单独的空间":让每个显示器独立管理自己的窗口条带;
  3. 多显示器用户注意摆放:Paneru 会把滑出屏幕的窗口藏在屏幕外(保留一条细窄可见边)。若外接显示器横向摆在旁边,macOS 可能把"移出屏幕"的窗口偷渡到副屏,导致行为异常——建议把副屏上下摆放(另有horizontal_mouse_warp选项让纵向排列的屏幕"感觉"横向),详见 README.md 的安装说明。

安装方式任选其一:Homebrew(brew install paneru)、Cargo(cargo install paneru)或 Nix(见 nix/README.md)。安装后可用paneru install && paneru start注册为后台服务,长期驻留菜单栏。

如何选择:按你的需求快速对号入座

  • 🍎只想在 macOS 上体验滑动平铺→Paneru。它是三者中唯一"macOS + 滑动条带"的组合,无需关闭 SIP,触摸板体验一流;
  • 🐧主力系统是 Linux/Wayland,追求滚动平铺鼻祖体验→Niri,成熟且社区活跃,Paneru 的滑动理念正是源自它;
  • 🧱需要 macOS 上的经典网格平铺、依赖现成 skhd 工作流→Yabai。生态最成熟,但要接受:SIP 必须关闭、网格会被不断切割重排、项目更新节奏已明显放缓;
  • 💻笔记本小屏 / 外接大屏混合使用→ 优先Paneru。官方特别强调它对大显示器的适配(避免"巨大最大化窗口 vs 一堆小碎窗口"的两极体验),小屏上也不会被迫反复最大化;
  • 🔌重度脚本玩家→ Paneru 内置 Lua 已覆盖配置、事件钩子、键绑定、状态查询;Yabai 则需要拼装 skhd + Hammerspoon 等外部组件。

常见问题 FAQ

Q1:Paneru 需要像 Yabai 一样关闭 SIP 吗?不需要。Paneru 只需辅助功能权限即可移动窗口,安全性要求更低。

Q2:Paneru 和 Yabai 能同时装吗?不建议。两者都会抢占窗口管理权,行为会互相冲突。Paneru 参考了 Yabai 的架构与 macOS 窗口管理经验(详见 ARCHITECTURE.md),是独立实现的滑动平铺方案,两者二选一即可。

Q3:Niri 的滑动平铺能用在 macOS 上吗?不能。Niri 是 Wayland 合成器,仅运行于 Linux。想在 macOS 上获得同款体验,Paneru(或 Hammerspoon 方案 PaperWM.spoon)是现成选择。

Q4:窗口数量很多时,条带会不会乱?不会。条带无限延伸但每个显示器独立,window balance可一键把全部列宽对齐当前窗口宽度,window center随时回到屏幕中央,重置布局一个热键搞定。

总结

三款工具各有所长:Yabai 胜在 macOS 网格平铺的成熟生态,Niri 是 Linux 滚动平铺的标杆,而 Paneru 把"开新窗口不动旧窗口"的滑动平铺哲学带进了 macOS——免关 SIP、触摸板手势自然、内置 Lua 脚本、会话恢复、热重载一应俱全。如果你的主力是 Mac 且受够了网格不断被切割重排,Paneru 值得成为你的第一选择。

📖 延伸阅读:完整功能与安装说明见 README.md,全部配置项见 CONFIGURATION.md,Lua 脚本指南见 SCRIPTING.md,内部架构解析见 ARCHITECTURE.md。

【免费下载链接】paneruA sliding, tiling window manager for MacOS.项目地址: https://gitcode.com/gh_mirrors/pan/paneru

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询