PaperWM for Mac: your two real options

Updated 2026-10-22 · by the maker of Ribbon

PaperWM itself is a GNOME Shell extension, so it can't run on a Mac. To get its scrolling layout on macOS you have two kinds of choice: PaperWM.spoon, a free Lua plugin for Hammerspoon that you configure in a text file, or a native app like Ribbon that you set up in a settings window.

Why there's no real PaperWM for macOS

PaperWM lives inside GNOME Shell. It relies on GNOME's window manager, Mutter, to draw and place windows. macOS has no GNOME Shell and doesn't let apps take over how windows are drawn. What a Mac app can do is move and resize other apps' windows through the Accessibility API, and that's enough to rebuild the strip.

Option 1: PaperWM.spoon

PaperWM.spoon is a plugin for Hammerspoon, the free Lua automation tool for macOS. It's inspired by GNOME's PaperWM and copies its main ideas:

It's free, MIT-licensed and actively maintained. Hammerspoon needs macOS 13 or later. You install it by cloning the repo into ~/.hammerspoon/Spoons/ and adding three lines to init.lua; the PaperWM.spoon setup guide has the steps.

Things to know:

Option 2: a native app (Ribbon)

Ribbon is a paid Mac app built for this one layout. Instead of a Lua file, every option has a control in a settings window: gap, centring mode, width presets, focus border, swipe fingers, floating rules. The trackpad swipe is on from the start and moves the strip with your fingers. A Mac Setup page checks for macOS settings that would get in the way, such as Stage Manager or a full-screen swipe on three fingers.

It runs on macOS 13 Ventura and later on Apple silicon (M1 or later), uses native Spaces with one strip per Space and per display, and needs only the Accessibility permission. Its window engine is built on Paneru, which is MIT-licensed and free if you'd rather use a TOML file and the terminal.

The trade-offs: Ribbon costs $9.99 once for one Mac, it's closed source, and it can't be scripted the way Hammerspoon can. All sales are final with no refunds (see the terms), so try the strip in the live demo first.

Keys compared

PaperWM on GNOME uses Super. PaperWM.spoon moves that to ⌥⌘. Ribbon uses ⌃⌥.

ActionPaperWM (GNOME)PaperWM.spoonRibbon
Focus left / rightSuper+Left / Right⌥⌘← / ⌥⌘→⌃⌥← / ⌃⌥→ (or H / L)
Move window left / rightSuper+Ctrl+Left / Right⌥⌘⇧← / ⌥⌘⇧→ (swap)⌃⌥⇧← / ⌃⌥⇧→
First / last windowSuper+Home / EndNot in defaults⌃⌥⌘← / ⌃⌥⌘→
Cycle widthSuper+R⌥⌘R⌃⌥R
Full widthSuper+F⌥⌘F⌃⌥F
CentreSuper+C⌥⌘C⌃⌥C
Wider / narrowerSuper++ / Super+-Not in defaults⌃⌥= / ⌃⌥-
Pull into columnSuper+I⌥⌘I (slurp)⌃⌥] or ⌃⌥[
Push out of columnSuper+O⌥⌘O (barf)⌃⌥⇧] or ⌃⌥⇧[
Cycle heightSuper+Shift+R⌥⌘⇧RNo presets; ⌃⌥⇧= / ⌃⌥⇧-
FloatScratch layer, Ctrl+Super+Escape⌥⌘⇧Esc⌃⌥T
Tabbed or stacked columnNot listed⌥⌘⇧S (stack)⌃⌥⇧T (tabs)
Switch workspaceSuper+PageUp / PageDown⌥⌘1–⌥⌘9macOS ⌃← / ⌃→
Move window to workspaceCtrl+Super+PageUp / PageDown⌥⌘⇧1–⌥⌘⇧9No shortcut; Mission Control

Pros and cons at a glance

PaperWM.spoonRibbon
PriceFree, MIT$9.99 once, closed source
SetupInstall Hammerspoon, clone, write LuaInstall the app, allow Accessibility
Settingsinit.luaSettings window
ScriptingFull Lua through Hammerspoonribbon:// URLs and a CLI
Trackpad swipeOpt-in, configured in LuaOn by default, 3 or 4 fingers
SpacesNative Spaces, a strip eachNative Spaces, a strip each
Minimum macOS13 (Hammerspoon)13 Ventura
SupportGitHub issuesEmail the developer

Choose PaperWM.spoon if you already use Hammerspoon, like keeping config in dotfiles, or want to script the layout. It's a capable tool and costs nothing.

Choose Ribbon if you want the layout working in ten minutes without writing code, and you'd rather adjust it with switches than with Lua.

Other free choices exist too. OmniWM and Nehir follow niri more than PaperWM; niri vs PaperWM explains the difference. For the whole field, see the best scrolling window managers for Mac. When you're ready, Ribbon is on the buy page.

FAQ

Does PaperWM work on macOS?

No. PaperWM is a GNOME Shell extension and needs GNOME. On a Mac you can use PaperWM.spoon, a Hammerspoon plugin inspired by it, or a native app like Ribbon.

Is PaperWM.spoon free?

Yes. PaperWM.spoon and Hammerspoon are both free and MIT-licensed. You do need to configure them in Lua.

Does PaperWM.spoon support trackpad swipes?

Yes, but it's off by default. Set PaperWM.swipe_fingers to 2, 3 or 4 in your init.lua to turn it on.

Can I use PaperWM.spoon and Ribbon together?

No. Two window managers moving the same windows fight each other. Stop one before starting the other.

Do I need to disable SIP for either?

No. Ribbon needs only the Accessibility permission and works with System Integrity Protection on. PaperWM.spoon's install steps don't involve SIP either.

Keep reading