Niri for macOS: can you run niri on a Mac?

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.

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 conceptOn a Mac (with ChainYourMac)
Infinite horizontal strip, no resize on openYes. This is the core model
Focus / move columns left and rightYes, ⌃⌥←/→ and ⌃⌥⇧←/→ (rebindable)
Several windows in one columnYes, stacks: stack, pop out, reorder, taller/shorter
Tabbed column displayYes, tabbed columns with a tab bar
preset-column-widths, maximize-column, center-columnYes: width presets, full width, center (plus never / on-overflow / always)
One strip per monitorYes. Windows stay on their display
Touchpad swipe to scroll the viewYes, follows your fingers (4 fingers by default, 3 optional)
Floating windowsYes: ⌃⌥T, per-app rules, small fixed-size windows float automatically
Dynamic vertical workspaces + OverviewNo. macOS Spaces and Mission Control instead; each Space has its own strip
Compositor effects: shaders, blur, rounded clippingNo. Apple draws the windows. Optional focus border and dimming only
Windows fully hidden off screenAlmost. macOS keeps a sliver of an off-screen window visible in a corner
KDL config, live reloadGUI 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.

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:

ChainYourMacOmniWMPaperWM.spoonAeroSpaceyabai
Scrolling strip like niriYesYes (plus Dwindle)YesNo (i3-like tree)No (BSP)
macOS13 Ventura and later26 Tahoe and laterWherever Hammerspoon runs13 and laterSee its README
ChipApple siliconApple siliconSee each project's README
Trackpad scrollingYes, follows fingersYes, 2/3/4 fingersYesn/an/a
Stacks / tabbed columnsBothBothStacksAccordionStack layout
WorkspacesmacOS SpacesIts own workspacesmacOS SpacesIts own (emulated)macOS Spaces
ConfigurationGUI (TOML optional)GUI + TOMLLua (init.lua)TOMLShell script + skhd
SIP changesNoneNoneNoneNoneOptional, for extras
Price$19.99 one timeFree, GPL-2.0Free, MITFree, MITFree, 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: free, scriptable, inside Hammerspoon

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:

Actionniri defaultChainYourMac 2.1 default
Focus column left / rightMod+Left/Right, Mod+H/L⌃⌥←/→, ⌃⌥H/L
Move column left / rightMod+Ctrl+Left/Right⌃⌥⇧←/→
Cycle preset widthsMod+R⌃⌥R
Maximize column (full width)Mod+F⌃⌥F
Center columnMod+C⌃⌥C
Consume / expel windowMod+[ / Mod+]⌃⌥] / ⌃⌥[ stack, ⌃⌥⇧] / ⌃⌥⇧[ pop out
Tabbed columnMod+W⌃⌥⇧T
Toggle floatingMod+V⌃⌥T
Touchpad: scroll the strip3-finger horizontal swipe4-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.

Get ChainYourMac — $19.99 one-time purchase · free updates forever · macOS 13+ on Apple silicon

FAQ

Can I install niri on macOS?

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.