Skip to content

Why tiling?

Tiling window managers automatically arrange windows into non-overlapping regions. Instead of manually dragging and resizing, you press a key and windows snap into place.

When tiling helps

Tiling works best when you:

  • Switch between multiple windows frequently (code + terminal + browser)
  • Want consistent window positions without manual arrangement
  • Prefer keyboard over mouse for window management
  • Work on large or multiple monitors where manual positioning is tedious
  • Need to see multiple windows at once (comparing files, watching logs)

When tiling doesn’t help

Tiling may not suit your workflow if you:

  • Work primarily in one full-screen app
  • Prefer floating windows that overlap
  • Use apps with many small utility windows (design tools, DAWs)
  • Need pixel-perfect manual positioning

You can always disable tiling for specific apps or toggle individual windows to floating.

Comparing alternatives

FeatureShojiyabaiAmethystAeroSpaceRectangle Pro
SIP changes requiredNoYes*NoNoNo
Composable layoutsYesNoNoNoNo
Per-space layoutYesYesYesYesNo
Layout modifiersYesNoNoNoNo
Custom layoutsLua scriptingScriptingLimitedTOML configNone
Focus follows mouseNoYesYesYesNo
Window gapsYesYesYesYesYes
DependenciesHammerspoonNoneNoneNoneNone

* yabai runs without SIP changes but loses scripting additions (focus follows mouse, window opacity, etc.)

yabai is the most powerful option but requires disabling System Integrity Protection for full features. Best for users comfortable with system modifications.

Amethyst is simple and works out of the box. Good for users who want basic tiling without configuration. Limited customization options.

AeroSpace is newer, config-file driven, and focuses on keyboard workflows. Supports tree-based layouts similar to i3.

Rectangle Pro is a commercial app focused on manual window snapping with some tiling features. Less automation, more direct control.

Shoji emphasizes composability — combine layouts, wrap them with modifiers, and build exactly what you need. Requires Hammerspoon but needs no system modifications.

Who Shoji is for

Shoji works well for users who:

  • Already use or are willing to install Hammerspoon
  • Want to customize window management beyond preset layouts
  • Prefer Lua scripting over config files
  • Need different layouts per macOS Space
  • Want layout composition (mirror, center, partition)

Who Shoji isn’t for

Consider alternatives if you:

  • Want zero configuration (try Amethyst)
  • Need focus-follows-mouse (try yabai or AeroSpace)
  • Prefer tree-based layouts like i3 (try AeroSpace)
  • Don’t want to write Lua for advanced customization

Next steps

Ready to try it? Continue to Installation.