A tiling window manager for macOS that arranges windows automatically using binary space partitioning, controlled from the command line.
- Stars
- 1,791
- Forks
- 87
- Open issues
- 23
- Last commit
- 6 days ago
What is it?
PaperWM.spoon arranges windows on macOS in a horizontal strip of columns that scrolls left and right, similar to the PaperWM extension for GNOME. New windows are tiled automatically, and each column can be resized, stacked as an accordion, or split with another window.
It runs inside Hammerspoon and is configured in Lua. Users bind hotkeys for focus, swap, resize, moving windows between Mission Control spaces, and floating windows. Options cover window gaps, external status bars and docks, per-app default widths, window filters for choosing apps and screens, and mouse or trackpad scrolling and dragging.
The project requires macOS, Hammerspoon, and the Mission Control setting that gives each display its own spaces. Its limitations include that macOS cannot move a window fully off-screen, so tiled windows that fall outside the visible area sit in a margin at the screen edge.
Key features
- 01Scrollable horizontal strip of tiled window columns
- 02Keyboard focus, swap, and resize actions bound through Hammerspoon hotkeys
- 03Accordion-style stacked columns and split-screen layouts
- 04Move windows between Mission Control spaces
- 05Trackpad swipe and mouse drag or scroll to move windows
- 06Configurable gaps, external bar offsets, and per-app default widths
Use cases
- Mac users who want GNOME PaperWM-style scrollable tiling without leaving macOS
- Developers who keep many editor and terminal windows open and want keyboard-driven layouts
- Users with several displays or Mission Control spaces who want consistent window placement
Quick start
- 1
Clone the Spoon into the Hammerspoon Spoons directory
git clone https://github.com/mogenson/PaperWM.spoon ~/.hammerspoon/Spoons/PaperWM.spoon - 2
Adjust Mission Control settings in System Preferences as described in the README
- 3
Load the Spoon and start it in your ~/.hammerspoon/init.lua
PaperWM = hs.loadSpoon("PaperWM") PaperWM:bindHotkeys(PaperWM.default_hotkeys) PaperWM:start()
Things to know
- Requires macOS and the Hammerspoon automation app.
- Requires changing Mission Control settings (separate Spaces per display) before use.
- Windows that would be tiled off-screen are placed in a margin at the screen edges, and dragging windows between spaces or screens is hard to detect.
Topics
FAQ
- What is PaperWM.spoon?
- A tiled, scrollable window manager for macOS, written as a Spoon plugin for the Hammerspoon automation app. PaperWM.spoon arranges windows on macOS in a horizontal strip of columns that scrolls left and right, similar to the PaperWM extension for GNOME. New windows are tiled automatically, and each column can be resized, stacked as an accordion, or split with another window.
- Is PaperWM.spoon free to use? What license does it have?
- PaperWM.spoon is open source under the MIT license. Check the license terms before using it in commercial products.
- Is PaperWM.spoon still maintained?
- Actively maintained. The last commit to PaperWM.spoon was on Oct 13, 2026.
- What can I use PaperWM.spoon for?
- Mac users who want GNOME PaperWM-style scrollable tiling without leaving macOS Developers who keep many editor and terminal windows open and want keyboard-driven layouts Users with several displays or Mission Control spaces who want consistent window placement
- How do I install PaperWM.spoon?
- Clone the Spoon into the Hammerspoon Spoons directory: git clone https://github.com/mogenson/PaperWM.spoon ~/.hammerspoon/Spoons/PaperWM.spoon Adjust Mission Control settings in System Preferences as described in the README Load the Spoon and start it in your ~/.hammerspoon/init.lua: PaperWM = hs.loadSpoon("PaperWM") PaperWM:bindHotkeys(PaperWM.default_hotkeys) PaperWM:start()
- Where can I get PaperWM.spoon?
- The source code and installation instructions are on GitHub: https://github.com/mogenson/PaperWM.spoon
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A sliding, tiling window manager for macOS that arranges windows on an infinite horizontal strip so new windows never resize existing ones.
Free, open-source macOS menu bar toolkit bundling per-app volume, system monitoring, window switching, clipboard history and more.
A tiling window manager for Windows that arranges application windows, virtual workspaces and monitors, controlled through a CLI.
A macOS app that turns the MacBook notch into a Dynamic Island-style panel for media controls, system stats, and quick utilities.
A macOS menu bar app that captures text from any area of the screen via OCR and copies it straight to the clipboard, working offline.