Niri 使用一年心得:滚动式窗口管理器为何让人不想换

用户分享从 Qtile 迁移到 Niri 加 Dux Shell 一年后几乎零配置的满意体验。
一位拥有十几年平铺窗口管理器经验的用户,在 2026 年初从 Qtile 切换到 Niri,并搭配 Dux Shell 作为桌面环境。他看中的是 Niri 原生 Wayland 的纯净体验和独特的滚动式布局——新窗口永远向右推,形成无限横向栈。Dux Shell 则补足了 Niri 默认缺失的面板、启动器、壁纸、截图等组件,免去了在 Wayland 下拼凑 Polybar/Waybar 的麻烦。近一年里,他几乎没有修改过配置,工作区动态管理、内置截图和窗口规则等功能完全覆盖了日常需求。他总结道:这套组合的核心吸引力在于「没有要求你付出什么」,适合想摆脱配置折腾、专注工作的用户。
一位长期使用平铺窗口管理器的用户,分享了他从传统平铺器切换到 Niri 加 Dux Shell 组合一年后的真实体验。这篇文章不仅记录了他的迁移心路,也揭示了「滚动式窗口管理」这一概念背后的实际手感,以及一套开箱即用的桌面环境如何大幅降低 Wayland 的折腾成本。
从传统平铺器到 Niri 的切换体验
据 YouTube 频道分享,这位用户在 2026 年初从使用多年的 Qtile 迁移到了 Niri。促使他切换的直接原因,是想尝试一个更纯粹的 Wayland 合成器。他提到 Qtile 虽然能在 Wayland 下工作,但存在一些小的怪癖和恼人的地方,而 Niri 在 Wayland 上的体验则没有给他带来任何负面感受。
真正让他停留在 Niri 的,是它独特的布局逻辑。Niri 并不把自己称为平铺窗口管理器,而是「滚动式窗口管理器」。传统平铺器的行为是:打开第二个窗口,两个窗口并排;打开第三个,其中一个半区被再次分割;再打开第四个,形成两两网格或行排列。但 Niri 的顺序是:每个新窗口都推到右侧,形成一个无限向右延伸的横向栈。
该用户强调,这种滚动布局并不像许多人想象的那样「异类」。他解释说:「它其实只是平铺的另一种方式,一种永远向右平铺的方式。」配合 Super + H/J/K/L 的方向键位移动焦点,以及 Super + O 触发概览来快速跳转窗口,整个导航过程非常流畅。

Wayland 是 Linux 上新一代的显示服务器协议,旨在取代使用了几十年的 X11。相比 X11,Wayland 在安全性、输入延迟、多显示器和高分屏支持上都有改进,但它将合成器(compositor)和窗口管理器的职责合并,导致许多传统工具需要重写。Qtile 本身是为 X11 设计的平铺窗口管理器,后来通过 wlroots 等库增加了 Wayland 后端支持,但 Wayland 后端的功能完整性和稳定性往往落后于 X11 后端,这正是原文提到「小的怪癖和恼人的地方」的背景。Niri 则是原生为 Wayland 编写的合成器,因此不会受历史包袱拖累。
为什么选择 Dux Shell 而不是 Polybar
Niri 本身默认没有任务栏或面板,这是让不少新手感到不适应的第一道坎。这位用户最初尝试了 Polybar,花费数周时间后认定「在 Niri 上并没有任何特别之处」,而且存在 bug、功能不全。随后他转向了 QuickShell 生态,并最终选择了当时名为 Dank Material Shell、近期更名为 Dux Shell 的方案。
Dux Shell 本质上是一套完整的桌面环境框架,覆盖了面板、启动器、截图、网络管理、壁纸设置、通知中心等通常需要用户自行拼凑的部件。用户提到,在传统平铺器上配置这一切,你需要安装 Polybar 或 Waybar 来做面板,再找 Fuzzel、Rofi 之类的启动器,然后还要处理 Systray、各种守护进程——而 Dux Shell 把这些全部内置了。
他还特别提到,Dux Shell 除了支持 Niri,还适配 Hyprland、Mango、Sway、LabWC、Scroll、Miracle 等 Wayland 合成器。这种跨合成器的通用性,让它在 Wayland 生态里具有很强的实用性。
QuickShell 是一个基于 Qt/QML 的桌面 shell 框架,它允许开发者用声明式的方式快速构建面板、启动器、通知中心等桌面组件。与 Polybar、Waybar 这类仅提供面板的独立程序不同,QuickShell 更像一个可编程的桌面环境运行时,组件之间可以共享状态和逻辑。Dux Shell(原名 Dank Material Shell)正是基于 QuickShell 构建的一套完整桌面环境,因而能够跨多个 Wayland 合成器工作,只要合成器支持必要的协议(如 wlr-layer-shell),就能运行同一套 shell。这种架构解释了它为何能同时适配 Niri、Hyprland、Sway 等多种合成器,而不像传统面板那样需要针对每个合成器单独适配。
日常使用:几乎零配置的满足感
这篇文章最有意思的部分,是用户反复强调「几乎没有做任何自定义」。安装后头几天做了少量配置,此后近一年基本没有再动过 Niri 配置文件和 Dux Shell 的设置。
他展示了几个实际使用场景:
- 工作区动态管理:Dux Shell 会根据窗口数量自动创建和销毁工作区。打开新窗口时下一个空工作区自动出现,关闭后多余的工作区自动消失,不会留下空位。
- 壁纸更换:点击日期/天气组件进入概览,再切到壁纸标签即可更换。用户指出,在极简 Linux 系统上,设置壁纸本身都需要额外安装程序,而 Dux Shell 已经内置了。
- 屏幕时间统计:Dux Shell 近期加入了数字健康功能,可以查看每周屏幕时间和最常用的应用。
- 颜色拾取器:作为一个内置小组件,用户因为内容创作需要经常获取十六进制色值,这个小组件被直接启用,无需第三方工具。

Niri 配置的极简主义
用户打开自己的 Niri 配置文件时坦言,这份文件写于切换后大约两周,此后再未修改。配置内容只有几项:启动 Emacs 守护进程、启动 Nextcloud、用 Swayidle 在 600 秒后让显示器休眠、指定截图保存目录、以及为部分应用设置窗口规则。
窗口规则里有一个很典型的细节:他把 Brave 浏览器、Discord、GIMP、Kdenlive、Qt 浏览器和 Tasty Trade 交易平台强制设为全屏打开。他的理由是「99% 的情况下打开浏览器就是要全屏的」,这些应用本身也是为全屏设计的,不应该被挤在半屏里。
截图功能是他每天都会用到的能力。Niri 内置截图键位绑定,直接保存到指定目录,他用来制作 YouTube 缩略图、截取股票图表分享到 Discord。这一点让他完全不需要额外安装截图工具。

Swayidle 是一个用于 Wayland 的空闲管理守护进程,它监听用户的输入活动,在达到预设的空闲时间后执行指定命令(如锁定屏幕、关闭显示器、挂起系统)。原文中「用 Swayidle 在 600 秒后让显示器休眠」就是典型的空闲管理配置。在 Wayland 生态中,这类守护进程需要与合成器配合工作,Niri 通过实现 idle-notify 等协议来支持它们。窗口规则(window rules)则是合成器提供的另一项能力,允许用户根据应用类名、标题等匹配条件,自动设置窗口的打开方式(如全屏、浮动、指定工作区),从而避免每次手动调整。
键位与迁移成本
对于有多年平铺器经验的用户,Niri 的学习曲线几乎可以忽略。这位用户从 Exmonad 开始使用平铺窗口管理器已有十几年,之后用过 Awesome 和 Qtile。在 Niri 里,他沿用 Super + H/J/K/L 来移动焦点,用 Super + Shift + H/L 来将窗口在不同显示器之间移动,这些绑定与过去的习惯无缝衔接。
他坦率地表示:「从传统平铺器切换到 Niri 对我来说毫不费力,我从来没有觉得 Niri 里有什么奇怪的地方。」
结论:工作正常就不折腾
面对「是否满意 Niri」的问题,他的回答很直接:满意,而且没有迁移的打算。他的原则是——东西能用就让它继续用,不需要为了新鲜感而让生活复杂化。
对于害怕极简窗口管理器需要大量配置、甚至要学一门新编程语言的用户,他的经验值得参考:Niri 加 Dux Shell 可以在几分钟内启动并运行,剩下需要学的只是几个键位,大约一小时就能上手。之后就是安心干活。
整套组合的核心吸引力不在于功能有多强大,而在于「它没有要求你付出什么」。在一个长期被调侃为「配置比使用时间还长」的 Linux 桌面生态里,这种开箱即用的舒适感本身就是稀缺品。
相关推荐

Cloudflare开源AI代码安全审计工具,获6万星
Cloudflare开源Security Audit,为AI编码Agent提供免费安全审计。三步工作流:应用测绘、多Agent对抗找Bug、三级分类报告,源自内部漏洞狩猎系统,近6万星标。

GPT-6 Astra读权重绝技:仅限小网络,实用靠写代码
GPT-6 Astra能直接读网络权重,但无工具设置仅限约17万权重的小网络。修复QUEN 3.5 0.8b推理循环靠写Python和50批练习,实测识别游戏耗时近一小时。本文梳理能力边界与两个安全提醒。

GPT-6 Astra 改写 Qwen 权重:7.9% 到 48.1%,是学会了数学还是学会了停?
MIT研究者用GPT-6 Astra直接编辑Qwen权重,数学得分从7.9%升至48.1%,全程无训练。但独立复现显示,提升主要来自修复循环、让模型学会终止作答,而非新增数学能力。