Short answer: no — niri is a Linux Wayland compositor, and macOS can't run one. The niri workflow does run on a Mac. This guide shows exactly what carries over, every option for getting it, and how your niri keys and config translate.
updated october 2026 · 11 min read
short answer
You can't install niri on macOS.niri is a Wayland compositor for Linux. It replaces the display server, and macOS doesn't allow that. You can still get the niri workflow on a Mac: columns on an endless horizontal strip, focus moving left and right, preset widths, and trackpad scrolling. Three apps do it: ChainYourMac (paid, macOS 13 and later), OmniWM (free, macOS 26 Tahoe only) and PaperWM.spoon (free, Lua in Hammerspoon). If you're on Linux, just use niri. It's excellent.
What niri is
niri describes itself as "a scrollable-tiling Wayland compositor". It's written in Rust and licensed GPL-3.0. Its first release was in late 2023, and it now uses calendar versions; the latest release is v26.04 (April 2026). The model fits in a sentence from its README: windows are arranged in columns on an infinite strip going to the right, and opening a new window never causes existing windows to resize.
A few more things define the niri feel:
One strip per monitor. Every monitor has its own strip, and windows never overflow onto the next screen.
Dynamic vertical workspaces. Workspaces are stacked vertically on each monitor, with an empty one always waiting at the bottom.
Columns are flexible. A column can hold several windows stacked vertically, or show them as tabs, and it can cycle through preset widths.
Gestures and polish. It has touchpad gestures, an Overview that zooms out, animations with custom shaders, blur, gradient borders, and a live-reloading KDL config.
niri's README says it is "heavily inspired by PaperWM", the GNOME extension, and it lists other projects that "tile scrollably elsewhere", including two macOS options. The niri vs PaperWM page covers that history.
Why niri can't run on macOS
niri isn't an app that sits on top of a desktop. It's a compositor: on Linux it takes the place of the whole display layer. It talks to the GPU, receives input from the kernel, draws every pixel and speaks the Wayland protocol to apps. None of that exists on macOS:
macOS has no Wayland. Mac apps draw through Apple's frameworks, not Wayland clients.
Apple's WindowServer is the only compositor, and it's part of the protected system. No third-party software can replace it, with SIP on or off.
Input, display configuration and window drawing all go through Apple's APIs.
So a "niri port" isn't a matter of effort. It's ruled out by how macOS is built. Running niri in a Linux VM gives you niri inside a window, not niri managing your Mac apps. Every Mac tool in this guide takes the other route: it works with macOS and moves real windows through the Accessibility API while Apple keeps drawing them.
What carries over to a Mac, and what doesn't
niri concept
On a Mac (with ChainYourMac)
Infinite horizontal strip, no resize on open
Yes. This is the core model
Focus / move columns left and right
Yes, ⌃⌥←/→ and ⌃⌥⇧←/→ (rebindable)
Several windows in one column
Yes, stacks: stack, pop out, reorder, taller/shorter
Yes: width presets, full width, center (plus never / on-overflow / always)
One strip per monitor
Yes. Windows stay on their display
Touchpad swipe to scroll the view
Yes, follows your fingers (4 fingers by default, 3 optional)
Floating windows
Yes: ⌃⌥T, per-app rules, small fixed-size windows float automatically
Dynamic vertical workspaces + Overview
No. macOS Spaces and Mission Control instead; each Space has its own strip
Compositor effects: shaders, blur, rounded clipping
No. Apple draws the windows. Optional focus border and dimming only
Windows fully hidden off screen
Almost. macOS keeps a sliver of an off-screen window visible in a corner
KDL config, live reload
GUI that applies instantly, plus an optional TOML file
Animation works differently too. In niri, the compositor animates the actual frames. On macOS, a window manager animates by moving windows through the Accessibility API many times per second. ChainYourMac drives that motion with a spring synced to your display's refresh rate. It feels fluid, but it's a different mechanism, and some apps resize more smoothly than others.
Try it right here — this is a working model of ChainYourMac, not a video.
SafariFileEditViewWindowHelpThu 9:41
Safari
chainyourmac.com
Terminal
~/project ❯ git status On branch main nothing to commit ~/project ❯ cargo test running 42 tests test result: ok ~/project ❯
Code
Notes
Chat
Music
Mail
Design
A working model of ChainYourMac, not a video. Drag a title bar to reorder, click a Dock icon to open an app, close a window with its red button. In the real app you hold ⌃⌥ with each key. The demo answers to both.
Notarized by Apple
Signed with Developer ID
No account, no telemetry in the app
Only needs the Accessibility permission
Automatic updates
Every way to get niri-style scrolling on macOS
Checked against each project's own repository on 6 October 2026:
ChainYourMac
OmniWM
PaperWM.spoon
AeroSpace
yabai
Scrolling strip like niri
Yes
Yes (plus Dwindle)
Yes
No (i3-like tree)
No (BSP)
macOS
13 Ventura and later
26 Tahoe and later
Wherever Hammerspoon runs
13 and later
See its README
Chip
Apple silicon
Apple silicon
See each project's README
Trackpad scrolling
Yes, follows fingers
Yes, 2/3/4 fingers
Yes
n/a
n/a
Stacks / tabbed columns
Both
Both
Stacks
Accordion
Stack layout
Workspaces
macOS Spaces
Its own workspaces
macOS Spaces
Its own (emulated)
macOS Spaces
Configuration
GUI (TOML optional)
GUI + TOML
Lua (init.lua)
TOML
Shell script + skhd
SIP changes
None
None
None
None
Optional, for extras
Price
$19.99 one time
Free, GPL-2.0
Free, MIT
Free, MIT
Free, MIT
ChainYourMac: the native niri-style app for macOS 13 and later
ChainYourMac began with the line "niri wasn't for Mac, so I made one." It's a Rust engine with a SwiftUI settings app. It does one layout, the scrolling strip, and goes deep on it: stacks you can build from either side, tabbed columns, width presets plus wider and narrower, full width, center modes, a minimap of the strip while you navigate, drag-to-reorder by title bar, and session restore that keeps column order, stacks and tabs across a restart. Every setting lives in a GUI that applies instantly, and the shortcut recorder works on AZERTY, QWERTZ and Dvorak.
Pros: runs on macOS 13 through 26; no config file needed; only the Accessibility permission; uses native Spaces; you can email the developer. Cons: paid; closed source; Apple silicon only; scrolling only, with no BSP mode.
OmniWM: free and feature-packed, Tahoe only
OmniWM (v0.7.5, 5 October 2026; the repository moved to OmniNull/OmniWM) is a free, GPL-2.0 window manager that offers niri-style scrolling containers or Hyprland-style Dwindle on each workspace. It also has a long list of extras: a quake terminal, scratchpads, an Overview, a command palette and the omniwmctl CLI. Trackpad gestures with 2, 3 or 4 fingers scroll the columns.
Pros: free and open source; very active; two layouts; lots of power features. Cons: needs macOS 26 Tahoe or later; asks for Accessibility and Input Monitoring; uses its own workspaces with one macOS Space per display. Full comparison: ChainYourMac vs OmniWM, or see OmniWM alternatives if you're not on Tahoe.
PaperWM.spoon is a "tiled scrollable window manager for MacOS" written in Lua for Hammerspoon. It's MIT-licensed and actively maintained, and it supports trackpad swipe scrolling. You install it by cloning it into your Spoons folder and editing init.lua.
Pros: free; endlessly scriptable; runs wherever Hammerspoon does. Cons: you maintain a Lua setup, and its README warns about off-screen windows showing at the edges and about multi-display quirks. Step-by-step: PaperWM.spoon setup guide.
AeroSpace and yabai: great tilers, but not niri
These come up in every "niri macos" thread, so it's worth being clear. AeroSpace is an "i3-like tiling window manager" (public beta, v0.21.3-Beta). yabai tiles with binary space partitioning (v7.1.25). Both are excellent, and neither has a scrolling layout. Every new window splits the visible screen and reflows the others, which is exactly what niri was built to avoid. If you actually want i3 behaviour, see ChainYourMac vs AeroSpace and vs yabai.
Smaller projects exist too: Nehir is a scrolling-only fork of OmniWM, and komorebi for Mac (early, v0.1.x) lists a scrolling layout.
Your niri keys on a Mac
niri's defaults use Mod, which is Super on a real session. On a Mac, ⌘ belongs to apps (⌘C, ⌘W, ⌘Q), and plain ⌥ types characters and moves by word. So ChainYourMac puts the window manager on Control+Option (⌃⌥) and keeps niri's shape:
Action
niri default
ChainYourMac 2.1 default
Focus column left / right
Mod+Left/Right, Mod+H/L
⌃⌥←/→, ⌃⌥H/L
Move column left / right
Mod+Ctrl+Left/Right
⌃⌥⇧←/→
Cycle preset widths
Mod+R
⌃⌥R
Maximize column (full width)
Mod+F
⌃⌥F
Center column
Mod+C
⌃⌥C
Consume / expel window
Mod+[ / Mod+]
⌃⌥] / ⌃⌥[ stack, ⌃⌥⇧] / ⌃⌥⇧[ pop out
Tabbed column
Mod+W
⌃⌥⇧T
Toggle floating
Mod+V
⌃⌥T
Touchpad: scroll the strip
3-finger horizontal swipe
4-finger swipe (3 optional)
All of them can be re-recorded, and an action can have several shortcuts. The full table has first/last column, column widths, heights and monitors, plus what has no equivalent. It's in niri keybindings on Mac.
Your niri config on a Mac
The layout options niri users actually tune all exist in ChainYourMac, as settings in the app and as keys in its optional TOML file:
preset-column-widths → Preset Window Widths (preset_column_widths). The defaults are 25, 33, 50, 67 and 75%. niri ships 1/3, 1/2 and 2/3.
gaps 16 → gap_inner and gap_outer, separately, in points (default 8).
center-focused-column "never" | "on-overflow" | "always" → center_focused_column, same three values, same default.
focus-follows-mouse / warp-mouse-to-focus → focus_follows_mouse / mouse_follows_focus, both off by default, as in niri.
focus-ring → optional focus_border with color, width and radius. It's off by default.
Window rules, animations, outputs and workspaces are covered line by line in niri config on macOS.
Multiple monitors and Spaces
niri's per-monitor strips were a big reason it was written. Its README says windows can never "overflow" onto an adjacent monitor. ChainYourMac follows the same rule on macOS. Every display has its own strip with its own focus and scroll position, and a window near the edge snaps flush to it instead of spilling onto the next screen. ⌃⌥N sends a window to the next display. Dragging a window onto another display adds it to that display's strip. Configuration → Displays can leave any one display unmanaged.
For workspaces, ChainYourMac uses macOS Spaces, and each Space has its own strip. You switch with Mission Control's swipes or Control+number shortcuts, if you've enabled them in System Settings → Keyboard → Keyboard Shortcuts → Mission Control. That isn't niri's vertical workspace column, but it's native, so it works with full-screen apps and everything else macOS does. OmniWM takes the other approach and runs its own workspaces on a single Space per display.
Which should you use?
Use niri if…
you run Linux or are happy to switch. It's free, open source and superb.
Use OmniWM if…
you're on macOS 26 Tahoe, want free and open source, and will use extras like scratchpads, the Overview or a CLI (full comparison).
Use PaperWM.spoon if…
you already live in Hammerspoon and enjoy maintaining Lua (setup guide).
Use ChainYourMac if…
you're on macOS 13 Ventura, 14 Sonoma, 15 Sequoia or 26 Tahoe on Apple silicon and want the strip to feel built in;
you'd rather adjust settings in a GUI than maintain a config file;
you want a developer you can email when something is off.
The niri workflow, on the Mac you already own.
Endless strip, stacks, tabbed columns, width presets and a trackpad swipe that follows your fingers — on macOS 13 Ventura through 26 Tahoe, set up in a couple of minutes.
No. niri is a Wayland compositor: on Linux it is the display server, drawing every window and owning every monitor. macOS draws windows with Apple's WindowServer, which no third-party app can replace, and macOS doesn't run Wayland at all. There is no Homebrew formula, port or build flag that changes that. What you can install is a Mac app that recreates niri's scrolling layout — see the options above.
Is there a niri for Mac?
Not niri itself, but there are Mac apps built on the same idea. ChainYourMac (paid, macOS 13 and later), OmniWM (free, macOS 26 Tahoe and later) and PaperWM.spoon (free, a Hammerspoon script) all put windows on a horizontal strip that you scroll, the way niri does.
What's the best niri alternative for macOS?
It depends on your macOS version and how you like to configure things. On macOS 13 Ventura, 14 Sonoma or 15 Sequoia, OmniWM won't run, so the choice is ChainYourMac (native app, GUI settings) or PaperWM.spoon (Lua). On macOS 26 Tahoe, OmniWM is a strong free option too. Full ranking: best scrolling window managers for Mac.
Does it support trackpad swipes like niri?
Yes. niri scrolls the view with a three-finger horizontal swipe. ChainYourMac scrolls the strip 1:1 under your fingers with a four-finger swipe by default — macOS keeps three fingers for its own gestures — and you can switch it to three fingers in Settings. OmniWM and PaperWM.spoon also scroll with trackpad swipes. See the setup guide for the macOS trackpad settings to change.
Does it work with multiple monitors like niri?
Yes. Like niri, ChainYourMac gives every display its own strip and windows never spill onto the neighbouring screen. ⌃⌥N sends a window to the next display, dragging a window to another display adds it to that strip, and Configuration → Displays can switch ChainYourMac off for any one display.
What about niri's vertical workspaces?
macOS has its own workspaces: Spaces. ChainYourMac uses them instead of inventing a second system, and each Space gets its own strip. There's no niri-style vertical stack of dynamic workspaces with an Overview zoom; Mission Control is the closest macOS equivalent.
Can I use my niri keybindings on a Mac?
Mostly, with a different modifier. ChainYourMac's defaults follow niri's shape on Control+Option: ⌃⌥←/→ focus columns, ⌃⌥⇧←/→ move them, ⌃⌥R cycles preset widths, ⌃⌥F is full width, ⌃⌥C centers. Every shortcut can be re-recorded. The complete table is in niri keybindings on Mac.
Can I reuse my niri config.kdl?
Not directly — ChainYourMac doesn't read KDL. The important layout options have equivalents (preset column widths, gaps, center-focused-column, focus-follows-mouse), and they're all in the settings window. The line-by-line translation is in niri config on macOS.
Is it free?
niri is free and open source, but it's Linux-only. ChainYourMac is paid: $19.99 one time for one Mac, with free updates and no subscription. If you want free on a Mac, OmniWM (macOS 26 Tahoe only) and PaperWM.spoon are free and open source.
Is ChainYourMac a port of niri?
No. It's an independent macOS app built on the same scrolling model that niri and PaperWM use. It shares the idea and the strip layout, not niri's code. Like niri, its engine is written in Rust; the settings app is SwiftUI.
Do I need to disable SIP?
No. ChainYourMac installs like any Mac app and only needs the standard Accessibility permission. No SIP changes, no kernel extensions. OmniWM and PaperWM.spoon don't need SIP changes either.