# Coming from Linux? Your tiling window manager, matched to a Mac

Source: https://chainyourmac.com/linux-tiling-window-managers-on-mac  
Updated: 2026-11-05 · Author: Ahmed Gagan (maker of ChainYourMac)

xmonad, dwm, bspwm, i3 and the rest need X11 or Wayland, so **none of them run on macOS**. Each one does have a Mac tool that works the same way. Here's the match for every popular one, and what you give up.

> **tl;dr:** No Linux tiling window manager runs on macOS, so match by *how* yours lays out windows. **xmonad, dwm, awesome or qtile** (automatic layouts): try [Amethyst](https://github.com/ianyh/Amethyst). **bspwm** (binary splits): yabai. **i3 or sway** (a tree you build by hand): AeroSpace. **niri, PaperWM, Karousel or Hyprland's scrolling layout**: a scrolling window manager like [ChainYourMac](https://chainyourmac.com/), or OmniWM if you're on macOS 26 Tahoe.

## Why none of them run on a Mac

xmonad, dwm, bspwm and awesome are X11 window managers. sway, river and Hyprland are Wayland compositors. qtile can do both. All of them rely on the Linux (or BSD) display stack. macOS has its own window server, and no third-party program can take its place.

XQuartz, the X11 server for the Mac, doesn't change that. You can run X11 programs in it, but an X11 window manager started inside XQuartz only arranges X11 windows. Safari, Finder, your editor and every other Mac app stay out of its reach.

So every Mac window manager is a different kind of program: an ordinary app that moves other apps' windows through macOS's Accessibility API, while Apple keeps drawing everything. That's why the choice comes down to which *model* you liked, not which program.

## The quick match

| On Linux | How it lays out windows | Closest on a Mac |
|---|---|---|
| xmonad | Automatic layouts, configured in Haskell | Amethyst ("à la xmonad") |
| dwm | Master area plus a stack; tiled, monocle and floating; edit config.h and recompile | Amethyst |
| awesome | Tiling layouts, configured in Lua | Amethyst for the layouts; Hammerspoon if you want Lua |
| qtile | Tiling layouts, written and configured in Python (X11 and Wayland) | Amethyst or yabai |
| bspwm | Binary space partitioning, driven by bspc and sxhkd | yabai (BSP); OmniWM's Dwindle on Tahoe |
| i3 / sway | A tree of splits you build by hand, tabbed and stacked containers | AeroSpace ("i3-like"); full mapping |
| river | A compositor that leaves layout to a separate window manager you choose | Depends on the window manager you ran with it |
| Hyprland | Dwindle tiling, and a built-in scrolling layout since v0.54 | OmniWM, yabai or ChainYourMac; details |
| niri, PaperWM, Karousel, scroll | Columns on a strip you scroll through | ChainYourMac, OmniWM or PaperWM.spoon |

## Automatic layouts: xmonad, dwm, awesome, qtile

These all arrange windows for you as they open, usually with one main window and the rest stacked beside it. [xmonad](https://github.com/xmonad/xmonad) is configured in Haskell, [dwm](https://dwm.suckless.org) by editing its source and recompiling, [awesome](https://github.com/awesomeWM/awesome) in Lua and [qtile](https://github.com/qtile/qtile) in Python.

On a Mac, [Amethyst](https://github.com/ianyh/Amethyst) is the natural home. It describes itself as an "automatic tiling window manager for macOS à la xmonad", it's free and MIT-licensed, and it has a range of layouts you can cycle through. What you lose is the config-as-a-program part: you choose layouts and options rather than writing code. If writing code is the point for you, Hammerspoon lets you script macOS in Lua, which awesome users will find familiar.

More on how automatic tiling compares with a scrolling strip: [ChainYourMac vs Amethyst](https://chainyourmac.com/chainyourmac-vs-amethyst).

## Binary splits: bspwm

[bspwm](https://github.com/baskerville/bspwm) tiles with binary space partitioning and leaves hotkeys to a separate daemon, sxhkd. [yabai](https://github.com/asmvik/yabai) works almost the same way on a Mac: BSP layouts, configured from the terminal, with hotkeys from skhd or another hotkey tool. Its tiling works with SIP enabled; some extras, like creating and moving Spaces, need SIP partly disabled ([what works without SIP](https://chainyourmac.com/yabai-without-sip)).

If you're on macOS 26 Tahoe, OmniWM's Dwindle layout is another BSP option, and it also has a scrolling layout.

## Manual trees: i3 and sway

i3 and its Wayland twin [sway](https://github.com/swaywm/sway) have you split containers by hand. [AeroSpace](https://github.com/nikitabobko/AeroSpace) calls itself "an i3-like tiling window manager for macOS", uses a tree, and is configured in a TOML file. It's free, still a pre-1.0 beta, and uses its own workspaces instead of macOS Spaces. The full concept-by-concept mapping is in [i3 and sway on macOS](https://chainyourmac.com/i3-for-mac).

## river

[river](https://codeberg.org/river/river) is now "a non-monolithic Wayland compositor": the compositor and the window manager are separate programs, and you pick a window manager that speaks its protocol. So the Mac match depends on the window manager you ran with it. If it tiled automatically, look at Amethyst; if it scrolled, look at the scrolling options below.

## Scrolling: niri, PaperWM, Karousel, Hyprland

Scrolling tiling skips splitting altogether. Windows sit in columns on a strip that runs past the edge of the screen, opening a window never resizes the others, and you move along the strip with the keyboard or a swipe. On Linux that's niri, PaperWM on GNOME, [Karousel on KDE](https://chainyourmac.com/karousel-for-mac), the sway fork scroll, and Hyprland's scrolling layout.

On a Mac:

- **[ChainYourMac](https://chainyourmac.com/)** is a native scrolling window manager for Macs with Apple silicon on macOS 13 or later. It has stacks and tabbed columns, width presets, a trackpad swipe that follows your fingers, and one strip per display. You set it up in a settings window. Paid, $19.99 one time.
- **[OmniWM](https://github.com/OmniNull/OmniWM)** is free and open source, with Niri-style scrolling plus Dwindle. It needs macOS 26 Tahoe.
- **PaperWM.spoon** is free and runs on Hammerspoon, configured in Lua.

The full comparison is in [the best scrolling window managers for Mac](https://chainyourmac.com/best-scrolling-window-managers-for-mac), and if you're coming from niri specifically, [niri for macOS](https://chainyourmac.com/niri-for-mac) maps its keybindings and config.

## What changes on a Mac, whichever you pick

- **The Super key.** On a Mac, ⌘ belongs to apps, so window managers usually build shortcuts on ⌃, ⌥ or both. ChainYourMac's defaults are ⌃⌥ with H/J/K/L or the arrows.
- **No compositor effects.** Apple's compositor draws every window, so blur, custom shaders and window-bending animations aren't possible for any third-party window manager.
- **Hidden windows leave a sliver.** macOS won't let an app push a window fully off screen, so tools that hide windows park them in a corner where a small piece can show.
- **Spaces are macOS's own.** Some tools work with macOS Spaces (ChainYourMac, yabai); others replace them with their own workspaces (AeroSpace, OmniWM).

Not sure which model suits you? Try the live demo on this page. It's a working model of ChainYourMac's scrolling strip, not a video.

**Keep the keyboard flow. Lose the reflow.** ⌃⌥H/J/K/L to move around, columns that never shrink when a window opens, stacks and tabs, one strip per display. Native, no SIP changes, macOS 13 or later. Price and checkout: https://chainyourmac.com/#pricing (one-time purchase, lifetime license; macOS 13+ on Apple silicon).

## FAQ

### Can I run xmonad, dwm or bspwm on macOS?

Not as your Mac's window manager. They're X11 window managers, and macOS draws its windows with its own window server. XQuartz can run X11 programs on a Mac, but an X11 window manager started there can only arrange X11 windows, never Safari, Finder or other Mac apps. On a Mac you use a native tool that copies the layout instead.

### What is the closest thing to xmonad on a Mac?

[Amethyst](https://github.com/ianyh/Amethyst), which calls itself an "automatic tiling window manager for macOS à la xmonad". It's free (MIT) and gives you xmonad-style automatic layouts. Comparison: [ChainYourMac vs Amethyst](https://chainyourmac.com/chainyourmac-vs-amethyst).

### Is there a bspwm for Mac?

yabai is the closest: it tiles with binary space partitioning, like bspwm, and you pair it with a hotkey tool such as skhd, much like bspwm with sxhkd. Its tiling works with SIP enabled. On macOS 26 Tahoe, OmniWM's Dwindle layout is another BSP option.

### Is there a scrolling tiling window manager for Mac, like niri or PaperWM?

Yes. [ChainYourMac](https://chainyourmac.com/) is a native one for macOS 13 or later, OmniWM is free on macOS 26 Tahoe, and PaperWM.spoon is free on Hammerspoon. See [the best scrolling window managers for Mac](https://chainyourmac.com/best-scrolling-window-managers-for-mac).

### Do Mac window managers need SIP disabled?

Mostly not. ChainYourMac, AeroSpace, Amethyst, OmniWM and PaperWM.spoon don't need SIP changes. yabai's tiling works with SIP on; only some extras need it partly disabled. Details: [yabai without SIP](https://chainyourmac.com/yabai-without-sip).

## Related

- [i3 for Mac](https://chainyourmac.com/i3-for-mac) — i3 and sway don't run on macOS. Here's what comes closest.
- [Niri for macOS](https://chainyourmac.com/niri-for-mac) — Can niri run on a Mac? Every way to get the niri workflow, compared.
- [Hyprland for Mac](https://chainyourmac.com/hyprland-for-mac) — Hyprland can't run on macOS. The closest setups, and what you lose.
- [Karousel for Mac](https://chainyourmac.com/karousel-for-mac) — KDE's scrollable tiling doesn't run on macOS. Here's what comes closest.
- [ChainYourMac vs Amethyst](https://chainyourmac.com/chainyourmac-vs-amethyst) — Auto-tiling vs the scrolling strip — the reflow problem, named.
- [ChainYourMac vs yabai](https://chainyourmac.com/chainyourmac-vs-yabai) — Scrolling strip vs BSP tiling — and the SIP question.
