Why niri can't run on a Mac
niri isn't an app that sits on top of the desktop. It is the compositor: the part of a Linux system that draws every window on screen and decides where it goes. It is built on Linux's Wayland graphics stack, and macOS has its own window server that third-party software cannot replace.
So the question isn't how to install niri on a Mac, but which Mac tool gives you the same way of working.
What makes niri feel like niri
- Windows are columns on a horizontal strip that grows as you open more.
- Opening a window never resizes the existing ones.
- Columns cycle through preset widths, and a column can hold several windows stacked vertically or shown as tabs.
- Focus moves column by column, and the view scrolls to keep the focused column visible, optionally centred.
- Touchpad gestures move the view one to one with your fingers.
niri actions and their LanesMac equivalents
The names on the left are niri's actions; the right column is how you do the same thing in LanesMac. Every LanesMac shortcut can be changed in Settings › Shortcuts.
| niri action | LanesMac |
|---|---|
| focus-column-left / right | ⌃⌥← / ⌃⌥→ (also ⌃⌥H / ⌃⌥L) |
| focus-window-up / down | ⌃⌥↑ / ⌃⌥↓ inside a stack (also K / J) |
| move-column-left / right | ⌃⌥⇧← / ⌃⌥⇧→ |
| move-window-up / down | ⌃⌥⇧↑ / ⌃⌥⇧↓ inside a stack |
| focus-column-first / last | ⌃⌥⌘← / ⌃⌥⌘→ |
| switch-preset-column-width | ⌃⌥R cycles your preset widths |
| set-column-width ± | ⌃⌥= wider, ⌃⌥- narrower |
| center-column | ⌃⌥C |
| maximize-column | Fill the screen (set a key in Settings › Shortcuts) |
| consume-window-into-column | ⌃⌥[ or ⌃⌥] stacks into the left or right column; ⌃⌥S builds a stack |
| expel-window-from-column | ⌃⌥⇧[ or ⌃⌥⇧] pops a window out; ⌃⌥D too |
| toggle-column-tabbed-display | ⌃⌥⇧T |
| focus/move to another monitor | ⌃⌥N sends the window to the next display |
| Touchpad scroll gesture | Hold ⌃⌥ and swipe with two fingers, or turn on three- or four-finger swipes |
config.kdl options and where they live on a Mac
| niri config option | LanesMac setting |
|---|---|
| preset-column-widths | Settings › Layout › Cycle width presets |
| default-column-width | Settings › Layout › New windows open at |
| gaps | Settings › Layout › Gaps (between windows and at screen edges) |
| center-focused-column (never / always / on-overflow) | Settings › Layout › Centre the focused column: Never, Always, or Only when it would be cut off |
| focus-follows-mouse | Settings › General › Focus follows mouse |
| window-rule: open-floating | Settings › Apps › Always float |
| window-rule: default column width | Settings › Apps › width per app |
| animations | Settings › Motion › Speed, or turn animation off |
| Per-output settings | Settings › Displays: turn the strip on or off for each display |
What's different on a Mac
- Workspaces: niri stacks workspaces vertically. LanesMac keeps one strip per display and helps you find windows with search (⌃⌥Space), an overview (⌃⌥O) and jumps to windows 1 to 9; it doesn't manage macOS Spaces.
- Apps have a say: on macOS, an app can refuse to get narrower than its minimum width. LanesMac learns that and lays the strip out around it.
- Configuration: a settings window replaces config.kdl, and every change applies immediately.
- Base key: LanesMac uses Control+Option (⌃⌥) so it doesn't clash with the Command shortcuts every Mac app uses.
Who should use what
If you're on Linux, use niri: it's excellent and free. If you work on a Mac and miss the niri way of working, a Mac scrolling window manager gives you the same habits without leaving macOS.
LanesMac is free to try for 24 hours with every feature, then a one-time purchase. It needs no System Integrity Protection changes and runs on Apple silicon and Intel Macs with macOS 13 or later.
