@wsl8297: 逛 GitHub 时挖到一个狠角色:niri。它直接绕开传统桌面“窗口一多就被挤变形”的老毛病,把窗口管理方式彻底重做了一遍。 niri 采用可滚动的平铺思路:窗口按列铺在一条“无限延伸”的水平条带上。你开新窗口,不会强行压缩现有窗口;多…
摘要
文章介绍了开源项目 niri,这是一款基于 Wayland 的新型桌面合成器,通过可滚动平铺布局避免传统窗口拥挤问题,并支持动态工作区、多显示器独立管理及自定义着色器动画等特性。
查看缓存全文
缓存时间: 2026/05/08 13:32
逛 GitHub 时挖到一个狠角色:niri。它直接绕开传统桌面“窗口一多就被挤变形”的老毛病,把窗口管理方式彻底重做了一遍。 niri 采用可滚动的平铺思路:窗口按列铺在一条“无限延伸”的水平条带上。你开新窗口,不会强行压缩现有窗口;多显示器下,每个屏幕也都有各自独立的工作区和窗口条带,干净利落。 GitHub:http://github.com/YaLTeR/niri 主要功能: - 可滚动平铺布局:窗口按列排列在无限水平条带上 - 动态工作区:带来类似 GNOME 的垂直工作区体验 - 多显示器独立:每个显示器各自一套窗口条带与工作区 - 内置截图与录屏:开箱即用的捕捉工具 - 触摸板/鼠标手势:切换与操作更顺手 - 窗口标签页分组:把相关应用收拢到一起更好管 - 渐变边框与动画:支持自定义着色器,颜值和手感都到位 README 里有完整的安装与配置说明;实际使用通常会搭配 waybar、fuzzel 等工具一起上手。
niri-wm/niri
Source: https://github.com/niri-wm/niri
A scrollable-tiling Wayland compositor.
Getting Started | Configuration | Setup Showcase
About
Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize.
Every monitor has its own separate window strip. Windows can never “overflow” onto an adjacent monitor.
Workspaces are dynamic and arranged vertically. Every monitor has an independent set of workspaces, and there’s always one empty workspace present all the way down.
The workspace arrangement is preserved across disconnecting and connecting monitors where it makes sense. When a monitor disconnects, its workspaces will move to another monitor, but upon reconnection they will move back to the original monitor.
Features
- Built from the ground up for scrollable tiling
- Dynamic workspaces like in GNOME
- An Overview that zooms out workspaces and windows
- Built-in screenshot UI
- Monitor and window screencasting through xdg-desktop-portal-gnome
- You can block out sensitive windows from screencasts
- Dynamic cast target that can change what it shows on the go
- Touchpad and mouse gestures
- Group windows into tabs
- Configurable layout: gaps, borders, struts, window sizes
- Gradient borders with Oklab and Oklch support
- Background blur for windows and layer-shell surfaces
- Animations with support for custom shaders
- Live-reloading config
- Works with screen readers
Video Demo
https://github.com/niri-wm/niri/assets/1794388/bce834b0-f205-434e-a027-b373495f9729
Also check out these videos that showcase a lot of the niri functionality:
- Niri Is My New Favorite Wayland Compositor by Brodie Robertson
- How Is niri This Good? Live Demo + Config by Nick Janetakis
Status
Niri is stable for day-to-day use and does most things expected of a Wayland compositor. Many people are daily-driving niri, and are happy to help in our Matrix channel.
Give it a try! Follow the instructions on the Getting Started page. Grab a desktop shell like DankMaterialShell or Noctalia (or build a more traditional setup): niri by itself is not a complete desktop environment. Also check out awesome-niri, a list of niri-related links and projects.
Here are some points you may have questions about:
- Multi-monitor: yes, a core part of the design from the very start. Mixed DPI works.
- Fractional scaling: yes, plus all niri UI stays pixel-perfect.
- NVIDIA: seems to work fine.
- Floating windows: yes, starting from niri 25.01.
- Input devices: niri supports tablets, touchpads, and touchscreens. You can map the tablet to a specific monitor, or use OpenTabletDriver. We have touchpad gestures, but no touchscreen gestures yet.
- Wlr protocols: yes, we have most of the important ones like layer-shell, gamma-control, screencopy. You can check on wayland.app at the bottom of each protocol’s page.
- Performance: while I run niri on beefy machines, I try to stay conscious of performance. I’ve seen someone use it fine on an Eee PC 900 from 2008, of all things.
- Xwayland: integrated via xwayland-satellite starting from niri 25.08.
Media
niri: Making a Wayland compositor in Rust · December 2024
My talk from the 2024 Moscow RustCon about niri, and how I do randomized property testing and profiling, and measure input latency. The talk is in Russian, but I prepared full English subtitles that you can find in YouTube’s subtitle language selector.
An interview with Ivan, the developer behind Niri · June 2025
An interview by a German tech podcast Das Triumvirat (in English). We talk about niri development and history, and my experience building and maintaining niri.
A tour of the niri scrolling-tiling Wayland compositor · July 2025
An LWN article with a nice overview and introduction to niri.
Contributing
If you’d like to help with niri, there are plenty of both coding- and non-coding-related ways to do so. See CONTRIBUTING.md for an overview.
Inspiration
Niri is heavily inspired by PaperWM which implements scrollable tiling on top of GNOME Shell.
One of the reasons that prompted me to try writing my own compositor is being able to properly separate the monitors. Being a GNOME Shell extension, PaperWM has to work against Shell’s global window coordinate space to prevent windows from overflowing.
Tile Scrollably Elsewhere
Here are some other projects which implement a similar workflow:
- PaperWM: scrollable tiling on top of GNOME Shell.
- karousel: scrollable tiling on top of KDE.
- scroll and papersway: scrollable tiling on top of sway/i3.
- Hyprland has a built-in scrolling layout.
- Paneru and PaperWM.spoon: scrollable tiling on top of macOS.
Contact
Our main communication channel is a Matrix chat, feel free to join and ask a question: https://matrix.to/#/#niri:matrix.org
We also have a community Discord server: https://discord.gg/vT8Sfjy7sx
相似文章
@wsl8297: 在 Mac 上干活,一开就是十几个窗口。要在一堆窗口里把目标翻出来,经常比做事本身还费劲。 最近刷到 Paneru 这款开源窗口管理器,思路很直:用横向“滚动条”来管窗口,窗口切换一下变得有序、好找。 它有点像 Linux 上的 Niri…
Paneru 是一款针对 macOS 的开源平铺式窗口管理器,采用独特的水平滚动条布局,旨在解决多窗口管理混乱的问题,灵感来源于 Linux 上的 Niri。
@MinLiBuilds: 1. 这才是真正的 fork。 子窗口享受 100% 缓存,智能,免费。 比 Claude Code 搞得丝滑 100 倍。 支持了真正的 fork/branch。 在任意一个 terminal,command+F, 基于当前对话历史,f…
MinLiBuilds 发布了一个真正的 fork 功能,允许在终端中基于对话历史通过 Command+F 创建全新的子窗口,支持多层 fork,并声称比 Claude Code 更丝滑、享受 100% 缓存且免费。
@VincentLogic: 发现个字节开源的桌面 AI 神器! UI-TARS Desktop,31k stars 不是吹的,这玩意儿真能看懂你的屏幕,然后帮你自动操作电脑。 你告诉它"帮我把 VS Code 的自动保存打开,延迟改成 500 毫秒",它就自己: -…
字节跳动开源的桌面 AI 自动化工具 UI-TARS Desktop 支持本地运行与屏幕视觉理解,可通过自然语言指令自主操控电脑完成日常任务。
@geekbb: 基于 Tauri(Rust + Svelte)的桌面应用,将编程 AI 代理、API 客户端、SQL/NoSQL 编辑器、SSH 终端、远程文件浏览器和项目管理看板整合在一个界面中,开发者不用在多个应用之间切换。 https://gith…
Clauge 是一个基于 Tauri(Rust + Svelte)的桌面应用,将编程 AI 代理、API 客户端、SQL/NoSQL 编辑器、SSH 终端、远程文件浏览器和项目管理看板集成在同一界面内,让开发者无需在多个应用间切换。
@billtheinvestor: 字节跳动开源 UI-TARS Desktop (3.6k)。核心逻辑:100%本地运行、仅看像素、不调API。对比OpenAI/Anthropic云端模式,解决两大痛点:1. 数据隐私(不出机器);2. 零成本延迟(免API费)。构建私密…
字节跳动开源 UI-TARS Desktop,一款100%本地运行、仅基于像素操作且不调用API的桌面自动化工具,解决数据隐私和API费用两大痛点,为构建私密自动化工作流提供了高效开源方案。