HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
niri-wm
niri
Rust2023–2026
niri-wm / niri

niri

A scrollable-tiling Wayland compositor.

41Distinct people
55Mentions
0Explicit recommenders
29KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A scrollable-tiling Wayland compositor.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year55 dated mentions

Observed mentions: 2023-09-03 04:16:10 UTC to 2026-10-03 06:33:28 UTC.

0102030402023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 37 mentions; 11 submissions, 26 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 9 mentions; 1 submissions, 8 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC110
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC817
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC371126
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC918

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
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 demo.mp4 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. How to test a Wayland compositor? · October 2026 My talk about some testing techniques used in niri: property-based tests, snapshot tests, client-server tests. The first half overlaps with my RustCon talk, the second half is new. The talk is in Russian, but I prepared full English subtitles that you can find in YouTube's subtitle language selector. 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
Read the full README on GitHub

What Hacker News says

55 sources
This is very cool. I remember being an aspiring designer in university when I saw your 10/GUI video, and was very excited about it. It was an interesting time, with Jeff Han's demo and the original Microsoft Surface (the table, not the tablet, lol). I'm happy you finally have a(n almost) live product many years later! Spear reminds me a lot of Niri[1], the horizontal scrolling tiling window manager on Linux. I know your 10/GUI concept predates it a lot, but how would you compare it, if you've tried it? I'm looking forward to trying it out! [1] - https://github.com/niri-wm/niri
In Spear (10/GUI for Mac) [video]
I keep thinking of trying to see how far I get re-doing Niri in River. The one other constraint that I'd really like to see relaxed is about displays, about being able to merge and subdivide screens as I please. Having a huge ultra-wide display really would be so much better if I could divide it up somehow. This is kind of the headline feature of stilch, which is a pretty neat compositor, https://github.com/wegel/stilch . Niri has some tickets on it too. Merging monitors into a big display, and splitting a display (moments before the multi-pointer ticket was filed in Niri), https://github.com/niri-wm/niri/discussions/1285 https://github.com/niri-wm/niri/discussions/3160 There's been all kinds of rough incredibly hard things going on with Niri just trying to figure out how to handle some of the more interesting copy-paste scenarios, and
Read the rest
with really weird sequencing issues across basically ephemeral inputs, that have really plagued the project and made life incredibly bad for downstream apps. This is just my opinion, man, but I think the lack of ambition about these ridiculous over the top features eventually starts hampering what turns out to be relatively prosaic asks. Better models for multi-seat, multi-cursor help scenarios like remote-desktop, and video-chat remote control, that at first don't seem needed, but are fundamentals that pay dividends if you shoot for them.
In Multiple Mouse Cursors in Wayland
Niri¹ is awesome. It took quite a bit of customization when I originally installed it, however, quite a few things have improved since then. I believe that niri's out-of-the-box experience is reasonably good with the latest version. With the addition noctalia², it really feels like a complete desktop and offers the essential functionality that I'd expect from gnome or kde. 1. https://github.com/YaLTeR/niri 2. https://docs.noctalia.dev/getting-started/installation/
In The dank case for scrolling window managers
I'm not a Niri stan by any means - I only switched to it the other week, and was using sway/i3 before then - but I suspect that most alternatives have answers to these, too. > Especially how it handles workspaces on multiple monitors. By default, each monitor has one workspace. Not one workspace for ALL monitors. I'm pretty sure this is the case for most tiling WMs; it's definitely the case for Niri (https://github.com/YaLTeR/niri/wiki/Workspaces), and I'm pretty sure it's the case for sway. > It also has hot reloading of the config, which is also nice. Niri will reload your config on save; Sway requires a keybind, but no restart. > Sure, Niri's config is approachable, but is it hackable? It only offers what Niri offers, right? You can't extend its functionality by config alone. Most Wayland compositors offer that extensibility through me
Read the rest
ssaging; you would send messages to Niri or Sway through scripts to achieve custom behaviour. I do miss having scripting built-in in AwesomeWM, but it hasn't been too much of an issue for me in practice. > Niri is nice, not mocking it. But infinite scrolling is not everyone's jam. Some others might even question the choice of KDL instead of JSON without any clear benifit. I brought Niri up as an example, but the general point I was trying to make is that the other tiling compositors/WMs out there offer similar solutions that get you to the same place, but through easier means. As for KDL, I think it would be difficult to argue that JSON is easier for humans to edit than KDL :p > Whatever you prefer and if it works for you, great. That's why we have choices ^^ By all means! I'm not denigrating XMonad or such here; it's more that I think it's probably not the right choice for most people in the market, as there are alternative solutions that are likely to get you to the same place with less friction.
In Moving Back to a Tiling WM – XMonad
Configuring your WM in Haskell seems fun, but I suspect "fun" is the primary motivator, not any kind of practical reason. Type-checking keybindings is cute, but you're going to discover that the keybinding doesn't work when you go to use it, so how much time are you really saving? That's not helped by the fact that many WMs/compositors have validators for their configs, so you're getting much of the same benefit with much less trouble. For reference, Niri's config is very approachable: https://github.com/YaLTeR/niri/blob/main/resources/default-c...
In Moving Back to a Tiling WM – XMonad
Looking at a video demo of Niri for an example: https://github.com/YaLTeR/niri Conceptually, it's like an infinite 2D canvas windows, divided into strips (strip is a workspace), and you then scroll through an infinite ribbon of windows in each strip. Seems interesting, but also slower and less flexible than traditional tiling WMs (least of all because of the slow scrolling animations, but also because it seems to prefer scrolling instead of jumping-towards). Like most of the 'tiling with gaps' patches I see, these feel like trying to look fancy without necessarily delivering big value. I'd be interested to hear why people want a scrolling WM. Is it merely more visually pleasing?
In Moving Back to a Tiling WM – XMonad
Think Niri [0], but worse, embedded in a web browser tab, and without keyboard navigation. Here's a somewhat ancient Stack Overflow screenshot I found: https://i.sstatic.net/yCseI.png (I think that's from near the transition because it has full "windowing" controls of minimize/maximize/close buttons. I recall a period with only close buttons.) All that blue space you could keep filling with more "blades" as you clicked on things until the entire page started scrolling horizontally to switch between "blades". Almost everything you could click opened in a new blade rather than in place in the existing blade. (Like having "Open in New Window" as your browser default.) It was trying to merge the needs of a configurable Dashboard and a "multi-window experience". You could save collections of blades (a bit like Niri workspaces) as named Dashboa
Read the rest
rds. Overall it was somewhere between overkill and underthought. (Also someone reminded me that many "blades" still somewhat exist in the modern Portal, because, of course, Microsoft backwards compatibility. Some of the pages are just "maximized Blades" and you can accidentally unmaximize them and start horizontally scrolling into new blades.) [0] https://github.com/YaLTeR/niri
In Tell HN: Azure outage

Showing the 15 most recent of 55 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.