mrkeyoor.com_
Sun 13 Sept 06:24 UTC
Dev Toolsevaluationupdated 13 Sept 2026

niri review

Niri controls a Wayland desktop by arranging windows in columns on a horizontal strip that you scroll. New windows appear to the right without squeezing the ones already open, and every monitor keeps its own strip and workspaces. It supplies the window-management core while leaving panels, notifications, login prompts, and other desktop pieces to separate programs.

Verdict

Our 30-second niri install added 408 packages, but both build and test commands exited 101 because pkg-config could not find libpipewire-0.3. Try the distribution package if per-monitor scrolling columns solve a problem you actually have, especially when ordinary tilers keep rearranging useful windows. Skip it if you want one package to deliver a finished desktop, or if its documented X11, touch, accessibility, or GPU caveats hit your daily setup.

We ran it

Lab card: what happened when we ran niriScreenshot of niri (niri-wm.github.io/niri)
Install✓ · 30s408 packages
Build✗ · 67s
Tests✗ · 14sran, no count parsed
Repo5598 files~96,396 lines of source · 9.8 MB · 2 CI workflows

Answers from our run

Does niri build from source?

Dependencies installed in 30 seconds (408 packages), and the build failed. We cloned commit 849c576 into a clean Debian container with 3 CPUs and no project-specific setup.

Do niri's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use niri?

Users expecting a complete desktop after installing one binary: the official guide calls for a shell or panel plus notification, portal, authentication, and X11 helpers.

What are the alternatives to niri?

Sway, Hyprland, PaperWM. Our 30-second niri install added 408 packages, but both build and test commands exited 101 because pkg-config could not find `libpipewire-0.

Setup2/5Packages installed; native PipeWire blocked build and tests
Docs5/5Build, sessions, config, X11, portals, and hardware are covered
Community5/527,674 stars and code pushed on 2026-09-12
Maturity4/5Stable daily-use claim, with hardware and accessibility limits

Who it’s for

Keyboard and touchpad users who want scrollable columns instead of a fixed tiling grid.
Multi-monitor users who want each display to keep an independent window strip and workspace set.
Wayland users willing to choose their own shell, portals, notification daemon, and authentication agent.
People who value live KDL configuration, built-in screenshots, screencasting controls, and an overview.

Who it’s NOT for

Users expecting a complete desktop after installing one binary: the official guide calls for a shell or panel plus notification, portal, authentication, and X11 helpers.
Workflows that depend on X11 apps positioning windows at exact screen coordinates: the Xwayland guide says those apps need a nested compositor.
Touch-first systems: the README says touchscreens are supported as input, but touchscreen gestures are still absent.
Screen-reader users who need panel focus, screen curtain, or built-in zoom: the accessibility guide says those pieces are missing.
NVIDIA users unwilling to change driver or kernel settings: the setup guide warns about high VRAM use, black screens, and a manual modesetting step.

Setup reality

Our sandbox install succeeded in 30 seconds and installed 408 packages. The 5,598-file, 9.8 MB checkout contained about 96,396 source lines. The build failed with exit 101 after 67 seconds, and the test command failed with exit 101 after 14 seconds. Both log tails said pkg-config could not find libpipewire-0.3.

No account credentials are required. A normal desktop still needs a session or display manager, D-Bus, PipeWire, portals, a shell or panel, and other helpers. X11 apps also need xwayland-satellite on the path. Configuration lives in a KDL file and reloads when saved.

The packaged route is much shorter than a manual source install. Niri opens inside another desktop for a trial, though the guide calls that mode buggy around hotkeys. NVIDIA, some ARM systems, NixOS Mesa mismatches, and virtual machines have separate setup notes.

v26.04 keeps each monitor on its own scrolling strip

Niri v26.04 arranges tiled windows as columns on a horizontal strip. Opening another window extends the strip instead of shrinking everything already visible. Each monitor owns a separate strip and its own vertical stack of dynamic workspaces, so moving or disconnecting a display does not turn the whole desktop into one shared coordinate puzzle. Tabs, floating windows, an overview, screenshots, gestures, and live-reloaded rules sit around that central model.

Our commit 849c576 checkout contained 5,598 files and about 96,396 source lines. This is a full Wayland compositor written in Rust, rather than a small layout script. The size shows up in the breadth of hardware, input, rendering, IPC, screencast, and accessibility documentation. It also means adoption is a desktop decision. You are replacing the component that owns displays, seats, window placement, and much of the session behavior.

The 5,598-file compositor leaves the desktop shell to you

Niri v26.04 leaves the surrounding desktop to separate programs. The official setup pages tell users to add a shell or panel, notification daemon, authentication agent, portals, keyring, terminal, launcher, locker, and wallpaper tool according to their needs. DankMaterialShell and Noctalia offer more assembled experiences, while LXQt, XFCE components, and a COSMIC session can also supply surrounding pieces.

Configuration is less intimidating than that list. Niri reads KDL from the user's config directory, creates a default file when none exists, reloads changes on save, and provides niri validate for syntax checks. The 408 packages installed during our source run did not produce a working binary, so that count should not be mistaken for a finished desktop. Package installation remains the sensible first route for most users.

What happened when we ran it

Our sandbox installed 408 packages in 30 seconds. Our test method used commit 849c576 in an unprivileged container with 3 CPUs and 12 GB of RAM. The repository occupied 9.8 MB and contained about 96,396 lines of source across 5,598 files. Our scan found 2 CI workflow files, no Dockerfile, and no top-level tests directory. Those are repository observations, not a runtime performance test.

The build exited 101 after 67 seconds. The test command also exited 101 after 14 seconds, with the same native dependency message. Both log tails said pkg-config could not locate libpipewire-0.3.pc, and the libspa-sys crate therefore could not find its required libpipewire-0.3 system library. The logs support that narrow finding. They do not tell us how niri behaves once the dependency is present.

Ubuntu 24.04 source instructions include the missing PipeWire package

The official Ubuntu 24.04 build command includes libpipewire-0.3-dev alongside compiler, Wayland, input, graphics, D-Bus, seat, text, and display-info development packages. It then asks for current stable Rust and cargo build --release. That documentation matches the boundary our run hit. The README itself sends readers to this longer Getting Started page, so the missing library is a prerequisite to follow, rather than evidence that the project never documented native dependencies.

A manual install involves more than copying the binary produced from the 9.8 MB checkout. The guide lists session scripts, a display-manager entry, portal configuration, and systemd or dinit service files, each with its own destination. It warns users to check the binary path in the service. Distribution packages handle much of this wiring and are the better test of whether the compositor fits your habits.

X11 compatibility uses xwayland-satellite 0.7 or newer

Since version 25.08, niri has started xwayland-satellite on demand when an X11 client connects, provided version 0.7 or newer is installed on the path. The guide names Steam, games, Discord, Ardour, and Wine plugins as working examples. X11 programs that insist on exact screen coordinates remain a hard caveat: the documented workaround is to run them inside another compositor or a rootful Xwayland window.

Hardware and accessibility need the same close reading. The setup guide warns NVIDIA users about a high-VRAM driver behavior, a manual fix, and possible black screens unless recent GBM-capable drivers and kernel modesetting are in place. The accessibility page calls Orca support basic and lists missing panel focus, screen curtain, and built-in zoom. Our 14-second failed test step never reached any of those runtime paths, so we cannot grade them from the sandbox.

A September 12 push matters more than the 484-item queue

GitHub recorded 27,674 stars and 484 open issues and pull requests when we fetched the repository. Search separated that combined number into 213 issues and 271 pull requests. The last push was 2026-09-12, and recently closed reports covered PipeWire capture, drawing-tablet input, and a tab-rendering glitch. That mix describes a busy project with visible maintenance, along with a review queue that plainly needs more than one maintainer.

The latest tagged release was v26.04 on 2026-04-25, while our commit 849c576 run happened on 2026-09-12. The later push and same-week issue closures keep the release date from reading as abandonment. Release notes also thank a dedicated issue triager and say pull-request volume has outgrown the maintainer's spare-time capacity. That is healthier than silence, though contributors should expect deliberate review rather than instant merges.

The 30-second install is secondary to whether scrolling columns fit

A 30-second dependency install makes a trial cheap; the lasting question is whether scrolling columns suit you. Niri's per-monitor separation is especially appealing on mixed-DPI or frequently docked systems, and the built-in screencast controls can black out sensitive windows or switch a live target. Sway is the safer choice for an i3-shaped workflow. Hyprland suits users who prefer conventional dynamic tiling, while PaperWM keeps the scrolling concept inside GNOME.

Start with a distribution package, then run niri as a real session and test the exact monitor, X11, portal, suspend, and input paths you rely on. Our 3-CPU sandbox established that a generic Rust dependency install was insufficient because native PipeWire discovery stopped both compilation commands. If assembling the surrounding desktop already sounds like unpaid maintenance, niri's window model is unlikely to repay the effort.

Alternatives

ProjectWhat it isPick it when
SwayAn i3-compatible Wayland compositor built around a familiar manual tiling model.pick this instead when i3 configuration and predictable split-based tiling matter more than scrolling columns.
Hyprland gh↗A configurable dynamic tiling Wayland compositor with a broader visual-effects focus.pick this instead when you want conventional dynamic tiling and deeper visual customization.
PaperWMA GNOME Shell extension that adds scrollable tiled window management.pick this instead when you want the scrolling idea inside GNOME rather than replacing its compositor.

What people are saying

  1. [velocity-scout] niri-wm/niri

Sources

  1. niri repository and README
  2. niri Getting Started guide
  3. niri important desktop software guide
  4. niri Xwayland guide
  5. niri accessibility guide
  6. niri v26.04 release notes
  7. niri issues and pull requests

More dev tools reviews

gson · nw.js · WxJava · marked · pandoc · shields · the whole board →