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. 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, or OmniWM if you're on macOS 26 Tahoe.
Coming from Linux? Your tiling window manager, matched to a Mac
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.
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
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 is configured in Haskell, dwm by editing its source and recompiling, awesome in Lua and qtile in Python.
On a Mac, 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.
Binary splits: bspwm
bspwm tiles with binary space partitioning and leaves hotkeys to a separate daemon, sxhkd. 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).
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 have you split containers by hand. 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.
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, the sway fork scroll, and Hyprland's scrolling layout.
On a Mac:
- ChainYourMac 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 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, and if you're coming from niri specifically, niri for macOS 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.
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, 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.
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 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.
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.