niri vs PaperWM, and what to use on a Mac
Both give you a scrolling strip of windows on Linux. PaperWM is an extension that runs inside GNOME, so you keep the rest of your desktop. niri is a standalone Wayland compositor that replaces the desktop with something lean and fast. Neither runs on macOS, but their layout does, through apps like Ribbon and PaperWM.spoon.
Same idea, different foundations
PaperWM is the older of the two and did a lot to make the scrolling layout popular: windows sit side by side on a strip, and the view slides instead of the windows shrinking. niri, started in 2023, builds a whole compositor around the same idea, written in Rust.
That difference in foundation explains almost everything else:
- PaperWM is a GNOME Shell extension. It runs inside Mutter, on X11 or Wayland, and you install it from extensions.gnome.org. GNOME still provides the top bar, settings, notifications, the Overview and everything else.
- niri is the desktop session. You log into niri instead of GNOME. You bring your own bar, launcher, notifications and lock screen.
Both are free and licensed GPL-3.0.
The differences that matter day to day
Workspaces
PaperWM gives each workspace one scrollable strip, and all monitors share a single workspace stack. niri gives every monitor its own independent, vertically arranged set of dynamic workspaces, with an empty one always waiting at the bottom. If you use several monitors and like them to act independently, niri's model is cleaner.
Floating windows
PaperWM keeps floating windows on a "scratch" layer, a kind of escape hatch you toggle on and off. niri has had true floating windows alongside the tiled ones since 25.01.
Configuration
PaperWM is configured from a GUI settings panel, plus user.css for styling, and every keybinding can be changed there. niri uses a KDL text file that reloads live. If you keep dotfiles in git, niri fits that habit. If you'd rather click, PaperWM does.
Overview and gestures
On Wayland, PaperWM uses three-finger swipes: left and right move the viewport, up opens GNOME's Overview, down opens PaperWM's workspace stack. niri uses a three-finger horizontal swipe for the view, a vertical one for workspaces, and a four-finger vertical swipe for its own overview.
Polish and extras
niri draws everything itself, so it has gradient borders, background blur, shader animations, a built-in screenshot UI and screencasting controls. PaperWM gets its visuals and tools from GNOME.
Updates
PaperWM has to track GNOME releases. Its current release supports GNOME 45 to 51, and older GNOME versions use older branches. niri releases on its own calendar-based schedule.
Side by side on Linux
| niri | PaperWM | |
|---|---|---|
| What it is | Standalone Wayland compositor | GNOME Shell extension |
| Licence | GPL-3.0 | GPL-3.0 |
| Display server | Wayland only (X11 apps through Xwayland) | X11 or Wayland |
| Workspaces | Per monitor, dynamic, vertical | One shared stack for all monitors |
| Floating | True floating windows | Scratch layer |
| Config | KDL file, live reload | GUI settings panel plus user.css |
| Overview | Its own | GNOME's Overview |
| Touchpad | 3-finger view and workspace swipes, 4-finger overview | 3-finger swipes (Wayland only) |
| Rest of the desktop | Bring your own | GNOME |
Who should pick which
Pick PaperWM if you already use GNOME and like it. You keep GNOME's settings, apps, extensions and Overview, and add a scrolling layout on top. It's the gentlest way to try the idea.
Pick niri if you're happy to assemble your own desktop, want per-monitor workspaces, and like a text config. It gives you more control over how things look and animate, without a full desktop around it.
On KDE Plasma there's a third option, Karousel, a KWin script with the same layout, though it doesn't support multiple screens.
What actually runs on a Mac
Neither niri nor PaperWM runs on macOS. niri needs a Wayland session; PaperWM needs GNOME Shell. A Mac window manager is an ordinary app that moves windows through the Accessibility API. It can copy the strip, not the compositor.
The Mac tools split roughly along the same lines:
- PaperWM.spoon is a Hammerspoon plugin inspired by PaperWM, free and configured in Lua. Its keys borrow PaperWM's ideas: cycle widths, slurp a window into a column, barf it out. See PaperWM for Mac and the PaperWM.spoon setup guide.
- OmniWM and Nehir follow niri more closely, with their own workspaces and an overview. OmniWM needs macOS 26 Tahoe on Apple silicon; Nehir needs macOS 15 or later.
- Ribbon is a paid native app with the strip, stacks, tabbed columns, a trackpad swipe and a settings window. It uses macOS Spaces rather than its own workspaces. It runs on macOS 13 and later, Apple silicon (M1 or later).
niri for Mac compares all of them, including the free Paneru, the open-source engine Ribbon is built on.
| Want on a Mac | Closest option |
|---|---|
| PaperWM's feel, free, scriptable | PaperWM.spoon |
| niri's workspaces and overview | OmniWM (Tahoe) or Nehir (Sequoia and later) |
| The strip with a settings window, macOS 13+ on Apple silicon | Ribbon |
| The strip, free, from the terminal | Paneru |
If you're moving between the two worlds, niri keybindings on Mac maps niri's binds to Ribbon's. You can try Ribbon's strip in the live demo before you look at pricing.
FAQ
Is niri better than PaperWM?
Neither is better for everyone. niri is a self-contained compositor with per-monitor workspaces and a text config; PaperWM keeps the full GNOME desktop around the same layout.
Can I run PaperWM or niri on macOS?
No. PaperWM needs GNOME Shell and niri needs a Wayland session, and macOS has neither. Mac apps like PaperWM.spoon, OmniWM and Ribbon copy the scrolling layout instead.
Which one came first?
PaperWM. niri was started in 2023 and is built around the same scrolling idea, with its own take on workspaces.
Does PaperWM work on X11?
Yes. PaperWM runs on GNOME under X11 or Wayland, though its touchpad gestures need Wayland. niri is Wayland only, with X11 apps running through Xwayland.
Is Ribbon closer to niri or to PaperWM?
A bit of both. Its keys and centring modes follow niri, while using macOS Spaces is closer to how PaperWM.spoon behaves. See niri for Mac for details.