Ribbon
How it worksPricingShortcutsGuidesFAQsChangelog
Download
Ribbon

A scrolling window manager for Mac. Windows sit on one strip: scroll instead of shrinking.

Support: support@meetribbon.app

PricingDownloadShortcutsGuidesChangelogLicensePrivacyTermsRefunds

Compare

Ribbon vs yabaiRibbon vs AeroSpaceRibbon vs AmethystRibbon vs ChainYourMacRibbon vs OmniWM

Guides

AeroSpace alternativesBest scrolling window managersHyprland for MacKeyboard shortcutsMultiple displaysNiri for MacPaperWM for MacPrivacyScrolling window managersStage Manager alternativesTrackpad gesturesTroubleshootingyabai with SIP onAll guides

© 2026 Ribbon · macOS 14+ · Apple silicon

Guides

PaperWM for Mac: PaperWM.spoon Setup + 4 Options

PaperWM won't run on macOS, but PaperWM.spoon gets close. A 6-step Hammerspoon setup, its limits, and 4 other ways to get PaperWM scrolling on a Mac.

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

#OptionPricemacOSSetupSwipe gesturesSpacesSIP
1PaperWM.spoonFree (MIT)Hammerspoon'sLua in ~/.hammerspoon/init.luaOff by default (swipe_fingers = 0)Native SpacesOn
2Ribbon (ours)From $12 one-time, no trial14+, Apple siliconApp + Accessibility; settings window over a TOML fileThree-finger on by default; Option + two-finger scrollNative SpacesOn
3OmniWMFree (GPL-2.0)26+, Apple siliconApp + Accessibility + Input Monitoring, GUI + TOMLYes, configurableOwn workspacesOn
4PaneruFree (MIT)Not statedHomebrew + TOML or LuaSee READMENative Spaces + experimental virtualOn
5Maki / ChainYourMac / Glidro$19 / $19.99 / $9.99 launch26+ / 13+ / 13+App, GUI settings3 or 4 fingers / 3 or 4 / four by defaultVariesOn

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.

  1. Install Hammerspoon and grant it Accessibility in System Settings → Privacy & Security.
  2. 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".
  3. Install the Spoon: git clone https://github.com/mogenson/PaperWM.spoon ~/.hammerspoon/Spoons/PaperWM.spoon (or use SpoonInstall, as the README shows).
  4. Load it and bind keys in ~/.hammerspoon/init.lua:
    PaperWM = hs.loadSpoon("PaperWM")
    PaperWM:bindHotkeys(PaperWM.default_hotkeys)
    PaperWM:start()
    
  5. Tune widths (optional):
    PaperWM.window_ratios = { 1/3, 1/2, 2/3 }
    PaperWM.default_width = 0.5
    PaperWM.window_gap = 10
    
  6. 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_N commands.
  • 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 are preset_column_widths in ~/.config/ribbon/ribbon.toml, the same idea as window_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:

ActionPaperWM.spoon defaultRibbon 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.

Related guides

  • Niri for Mac: 7 Ways to Get Niri-Style Scrolling
  • Scrolling Window Manager for Mac: How It Works
  • Best Scrolling Window Manager for Mac: 9 Compared

FAQs

Short answers for this guide. Setup and license links if you need the next step.

Can’t find what you’re looking for? See the Mac Setup page or write from the app’s About screen.

No. PaperWM is a GNOME Shell extension and needs GNOME on Linux. On a Mac, use PaperWM.spoon (Hammerspoon) or a native scrolling window manager.

Can I install PaperWM on a Mac?
No. PaperWM is a GNOME Shell extension and needs GNOME on Linux. On a Mac, use PaperWM.spoon (Hammerspoon) or a native scrolling window manager.
Is PaperWM.spoon the same as PaperWM?
No. It's a separate project by a different author, inspired by PaperWM, written in Lua for Hammerspoon.
Does PaperWM.spoon support trackpad swipes?
Yes, but it's off by default. Set `PaperWM.swipe_fingers` to 3 or 4.
Why do I see slivers of windows at the screen edges?
macOS doesn't allow windows to be moved entirely off-screen, so off-strip windows rest in a small margin. PaperWM.spoon documents this. Ribbon leaves a 5 px sliver for the same reason.
Is there a free PaperWM alternative for Mac with a GUI?
OmniWM, if you're on macOS 26+. On older macOS, the free options are config-based (PaperWM.spoon, Paneru).
What's the difference between PaperWM and niri?
PaperWM is a GNOME extension. niri is a standalone Wayland compositor inspired by it. The layout idea is the same. See [niri for Mac](/guides/niri-for-mac).

Can’t find what you’re looking for? See the Mac Setup page.

All guides