If you used PaperWM on GNOME and now sit in front of a Mac, here's the bad news: it's a GNOME Shell extension (GNOME 47 to 51, v51.0.0) and it won't run on macOS. The good news is that its layout, with windows side by side on a strip like sheets of paper, travels well. The most faithful copy is free: PaperWM.spoon, a Hammerspoon plugin. We'll set that up first, then cover the four other routes, including ours.
Checked on 1 November 2026 against the PaperWM and PaperWM.spoon READMEs and each app's own site.
What PaperWM does, in one paragraph
PaperWM arranges windows in a horizontal row that runs past the edges of the screen. Opening a window adds it next to the current one rather than squeezing everything else. You move along the row with the keyboard or a swipe, and each monitor has its own workspaces. It's built on top of GNOME rather than merely extending it, which is exactly why it can't come to macOS. A Mac version has to be a separate program that moves ordinary macOS windows using the Accessibility API.
All 5 routes in one table
| # | Option | Price | macOS | Setup | Swipe gestures | Spaces | SIP |
|---|---|---|---|---|---|---|---|
| 1 | PaperWM.spoon | Free (MIT) | Hammerspoon's | Lua in ~/.hammerspoon/init.lua | Off by default (swipe_fingers = 0) | Native Spaces | On |
| 2 | Ribbon (ours) | From $12 one-time, no trial | 14+, Apple silicon | App + Accessibility; settings window over a TOML file | Three-finger on by default; Option + two-finger scroll | Native Spaces | On |
| 3 | OmniWM | Free (GPL-2.0) | 26+, Apple silicon | App + Accessibility + Input Monitoring, GUI + TOML | Yes, configurable | Own workspaces | On |
| 4 | Paneru | Free (MIT) | Not stated | Homebrew + TOML or Lua | See README | Native Spaces + experimental virtual | On |
| 5 | Maki / ChainYourMac / Glidro | $19 / $19.99 / $9.99 launch | 26+ / 13+ / 13+ | App, GUI settings | 3 or 4 fingers / 3 or 4 / four by default | Varies | On |
Route 1: PaperWM.spoon, set up in 6 steps
PaperWM.spoon is the most direct descendant. It's a Spoon (plugin) for Hammerspoon, and the README says it's inspired by PaperWM. The last commit was on 30 October 2026.
- Install Hammerspoon and grant it Accessibility in System Settings → Privacy & Security.
- Fix Mission Control settings. In System Settings → Desktop & Dock → Mission Control, turn off "Automatically rearrange Spaces based on most recent use" and turn on "Displays have separate Spaces".
- Install the Spoon:
git clone https://github.com/mogenson/PaperWM.spoon ~/.hammerspoon/Spoons/PaperWM.spoon(or use SpoonInstall, as the README shows). - Load it and bind keys in
~/.hammerspoon/init.lua:PaperWM = hs.loadSpoon("PaperWM") PaperWM:bindHotkeys(PaperWM.default_hotkeys) PaperWM:start() - Tune widths (optional):
PaperWM.window_ratios = { 1/3, 1/2, 2/3 } PaperWM.default_width = 0.5 PaperWM.window_gap = 10 - Turn on swipes (optional). Set
PaperWM.swipe_fingers = 3(it's 0, meaning off, by default). If macOS's own three-finger gestures fire too, turn them off in Trackpad settings.
Limits to know, from its README:
- macOS won't let a window move fully off-screen. Windows that would be off-screen sit in a thin margin at the left and right edges, still visible and clickable.
- Dragging a window to another Space or screen is hard to detect, so use the
move_window_Ncommands. - Arrange multiple screens vertically in Displays settings, or windows can bleed onto the neighbouring screen. The WarpMouse.spoon add-on helps.
Pick it if you want it free and scriptable, and Hammerspoon is already in your life. Skip it if you don't want to maintain Lua.
Route 2: Ribbon
Ribbon is the app we make. Think of it as PaperWM.spoon with the Lua swapped for a settings window. The ideas are the same, and so are many of the keys:
- ⌃⌥R cycles widths through ¼, ⅓, ½, ⅔, ¾ and full, like the Spoon's
cycle_width. The stops arepreset_column_widthsin~/.config/ribbon/ribbon.toml, the same idea aswindow_ratios. - ⌃⌥C centres a column, like
center_window. - ⌃⌥S stacks the window into the column on its left (slurp). ⌃⌥⇧S pulls it back out (barf).
- Three-finger swipe is on from the start (gestures guide). Hold Option and scroll with two fingers if you'd rather keep three-finger swipes for macOS.
It has the same off-screen limit as the Spoon. Off-strip columns sit as 5 px slivers at the screen edge, because macOS won't park a window fully off-screen. It works inside native Spaces, keeps SIP on and asks only for Accessibility. When you quit, windows go back to the frames they had before. One-time licence: $12 for one Mac at the founding price (then $17), $39 for 3 and $59 for 5 (pricing). Requires macOS 14+ on Apple silicon. There's no free trial.
Pick it if you want PaperWM's feel without maintaining Lua. Skip it if you want free, Intel support, or to script it the way Hammerspoon lets you. The Spoon wins there, clearly.
Route 3: OmniWM
Free and feature-rich, with niri-style scrolling (PaperWM's close relative) and dwindle tiling, an overview and a command palette. Apple silicon on macOS 26+ only, and it uses its own workspaces instead of Spaces. Ribbon vs OmniWM.
Route 4: Paneru
A free "sliding, tiling" app with one strip per monitor, TOML or Lua config and Homebrew installs. It works with native Spaces. MIT, v0.5.2. It's the middle ground between a Spoon and a GUI app. GitHub.
Route 5: other paid strip apps
- Maki: Swift, macOS 26+, $19 after a 14-day trial, with an overview and an MCP server.
- ChainYourMac: macOS 13+ on Apple silicon, from $19.99, no refunds. Ribbon vs ChainYourMac.
- Glidro: macOS 13+ on Apple silicon, $9.99 launch price for one Mac.
PaperWM.spoon keys → Ribbon keys
If you're moving from the Spoon to Ribbon, most actions have a direct partner:
| Action | PaperWM.spoon default | Ribbon default |
|---|---|---|
| Focus left / right / up / down | ⌥⌘+arrows | ⌃⌥+arrows |
| Swap with neighbour | ⌥⌘⇧+arrows | ⌃⌥⇧+arrows |
| Cycle width | ⌥⌘R | ⌃⌥R |
| Full width | ⌥⌘F | ⌃⌥F |
| Centre window | ⌥⌘C | ⌃⌥C |
| Move window into a column | ⌥⌘I (slurp in) | ⌃⌥S (stack into left column) |
| Move window out of a column | ⌥⌘O (barf out) | ⌃⌥⇧S (unstack) |
| Stacked/accordion column | ⌥⌘⇧S (toggle stack) | ⌃⌥T (tabs in column) |
| Float / unfloat | ⌥⌘⇧Esc | ⌃⌥Space |
| Focus window 1–9 | ⌘⇧1–9 | ⌃⌥1–9 |
Ribbon's Command-Option shortcut style uses ⌘⌥ chords if your fingers already know the Spoon's layout. Settings → Shortcuts.
Who should pick which
- Tinkerer with dotfiles: PaperWM.spoon or Paneru.
- On macOS 26 and wants every feature for free: OmniWM.
- Wants it to just work, with native Spaces and a settings window: Ribbon.
- On macOS 13: PaperWM.spoon, ChainYourMac or Glidro.
Bottom line
You can't run PaperWM on macOS, but the layout travels well. Start with PaperWM.spoon if you like code, or download Ribbon if you'd rather have a settings window. What a scrolling window manager is.