Skip to content

Shoji

The composable tiling window manager for macOS

Multiple layouts

Tall, wide, three columns, BSP, grid, column, monocle, and floating. Switch layouts with a keystroke.

Keyboard-driven

Vim-style navigation between windows. Swap positions, adjust ratios, toggle floating.

Composable

Wrap layouts with modifiers. Combine layouts spatially. Build exactly what you need.

No system modifications

Runs on Hammerspoon (free, open source). No SIP changes, no kernel extensions. Each macOS Space keeps its own layout.

Why Shoji?

Most macOS tiling managers offer preset layouts and configuration. Shoji is built differently — every layout is composable:

  • Modifiers transform layouts: Wrap any layout with Mirror (flip orientation), Centered (add margins), or Gaps (add spacing). Stack them for combined effects.
  • Combinators partition space: Use Partition to create asymmetric splits with different layouts on each side. Use IfMax to switch layouts based on window count. Build complex arrangements from simple pieces.
  • Per-space independence: Each macOS Space maintains its own layout, ratios, and window order. Switch spaces and your arrangement is restored — not reset to a global default.

Need help? Ask a question in GitHub Discussions or open an issue.