The Spacetile field guide

Features

Everything Spacetile does, and how it fits round the macOS features you already use.

On this page

Spacetile is a tiling window manager built into macOS rather than layered over it. It tiles the Spaces you already have, keeps System Integrity Protection on, and works alongside full screen, Split View and macOS’s own tiling. To see how that compares with yabai, AeroSpace, Rectangle, ShiftPlus and the rest, see Spacetile compared.

Built on macOS

Your Spaces, tiled

Spacetile has no workspaces of its own. The Desktops it tiles are the ones in Mission Control, numbered as Mission Control numbers them, on every display.

  • Nothing is hidden off screen. Every window stays on its Desktop, where Mission Control, Exposé and ⌘Tab expect it.
  • macOS keeps working. Swiping between Desktops, the Spaces bar and dragging windows between Desktops in Mission Control still work, and windows you drag there join the right layout.
  • Instant switching. ⌥1…⌥0 switch Desktops with no slide animation (see Switching).
  • Sending windows. ⌥⇧1…⌥⇧0 move the focused window to another Desktop through the window server, laid out before you arrive.
  • Both display modes. “Displays have separate Spaces” can be on or off; Spacetile follows macOS in each.

SIP stays on

Everything Spacetile does works with System Integrity Protection on. There’s no scripting addition to load, no reboot into Recovery, and nothing to redo after a macOS update. How it works without SIP lists the window-server calls it uses. The few things that do need SIP off (creating Spaces, changing another app’s window opacity or layer, sticky windows) Spacetile doesn’t do. Dimming the windows you’re not using doesn’t need them: see Focused window.

Full screen and Split View

Full-screen apps keep the Space macOS gives them, and Spacetile works round it:

  • Counted in place. ⌥N counts full-screen Spaces where Mission Control shows them, so switching to one works like switching to a Desktop.
  • Back to the tile. Leaving full screen puts the window back beside the same neighbours.
  • Split View by command. fullscreen pair puts the focused window and its neighbour into Split View, each on the side it’s on now.
  • Rules. Rules → Open full screen makes an app’s new windows go full screen.
  • Profiles. Profiles record full-screen apps and Split View pairs and bring them back.
  • Shown. The mini-map and the menu-bar item show full-screen Spaces among the Desktops.

See Full-screen apps.

macOS tiling joins in

The green button’s Move & Resize and Fill & Arrange, Window ▸ Move & Resize and the fn⌃ arrow keys all work. Spacetile reads what macOS did to a tiled window as its own command and re-tiles the other windows round it, instead of snapping the window back. See macOS tiling.

Tiling

  • Binary space partition. A new window splits the focused tile along its longer side.
  • Three modes per Desktop. Tile, Stack (every window fills the Desktop; cycle with ⌥n / ⌥p) or Float, set in Settings or a profile and changed live with ⌥d / ⌥s.
  • Floating windows. ⌥f floats or tiles a window; apps and window titles can float by rule.
  • Placing. Halves, thirds, two-thirds, quarters, sixths, the middle third and any fraction of an edge, each re-tiling the other windows into what’s left. Pressing an edge again cycles ½ → ⅔ → ⅓.
  • Holes. When a placement has more tiles than windows, empty tiles keep its shape, and the next window fills them.
  • Restore. ⌥⌃r undoes the last run of place, grow and shrink.
  • Rearranging. Swap, join, flip a split, zoom, balance, mirror and rotate, each with a key.
  • Preselect. Choose which side of the focused window the next one opens on; a hint shows where.
  • Stack on overflow. Spacetile learns each window’s minimum size. A window that won’t fit goes to the roomiest tile or joins a stack, and stacks split back out when there’s room. A drop that can’t fit names the window that needs room.
  • Gaps and padding that suit the display, or your own. toggle spacing turns them off for edge-to-edge tiles and back on.

See Spaces and layouts and Commands.

Focused window

Two options in Settings → General, both off until you turn them on:

  • Active window border. An outline in the accent colour round the focused window. It follows the window as it moves, resizes or is dragged.
  • Dim other windows. A shade over everything behind the focused window on its display, so the window you’re using stands out. Clicks go through it.

Neither changes another app’s windows. Spacetile draws its own click-through windows and places them just above and just below the focused one, which macOS allows with SIP on; yabai’s opacity, which changes the windows themselves, is what needs SIP off. Windows in front of the focused one, like a floating window it’s tiled under, stay undimmed. toggle border and toggle dim switch them from the keyboard.

Mouse

  • Focus follows mouse, without raising, and mouse follows focus. Either can be turned off.
  • Drag to retile. Drag a window by its title bar onto another tile to swap with it, insert beside it, or fill a hole. A highlight shows which.
  • Drag to resize. Drag the edge between two tiles, or the gap between them; both windows follow.
  • fn shortcuts. fn + drag moves a window from anywhere in it; fn + drag to a screen edge sends it to the next or previous Desktop; fn + right-drag resizes from the nearest corner.

See Mouse.

Profiles

A profile records which apps sit on which Desktop and how each Desktop tiles, then applies that again.

  • Capture or design. Save the current layout from the menu bar, or build one in the profile designer from templates.
  • Apply from the menu bar, by shortcut, from the command line, when a Focus mode turns on, or when the displays it was made on connect.
  • Fills in what’s missing. Apps that aren’t running are launched, and their tiles wait for their windows.
  • Opens what you work on. An app the profile launches can open links, files, folders or a terminal command too, alongside the windows it restores.
  • Tidies the rest. Apps a profile doesn’t mention can be left, hidden or quit.
  • Moves between Macs and displays. Each recorded display is matched to a connected one by signature, name or role.
  • Plain JSON, one file per profile, ready for your dotfiles.

See Profiles.

Displays

  • Each display tiles its own Desktops, whether Spaces are separate per display or span them.
  • Moving between displays. Commands focus the next display, or send a window to the Desktop showing there; dragging a tiled window onto another display drops it into that display’s tiling.
  • Display changes. After sleep, or when displays come and go, Spacetile waits for macOS to settle and lays everything out again, or applies the profile made for those displays.
  • Status at a glance. The menu-bar item shows the Desktop’s number, label, layout and stacked windows, or every display’s Desktop at once.
  • Mini-map. Clicking the item shows every Desktop on every display, with its windows as app icons, or as live previews if you allow Screen Recording. Click to switch, or drag a window onto another Desktop to send it.
  • Spaces bar. The mini-map opens into a Spaces bar across the top of the screen.
  • Profiles and pause. Profiles apply in one click from the mini-map, and a switch pauses all tiling.

Keys and scripting

  • Every action has a key and a text form, the same commands in Settings, config.json, the command line and Raycast.
  • Grouped shortcuts. Default keys follow one modifier per family. Move a whole family at once in Settings → Keys.
  • Start from what you know. Shortcuts can start from Rectangle, Spectacle, AeroSpace, Amethyst, BetterStage or ShiftPlus.
  • Other key binders. Raycast, skhd and Karabiner-Elements can drive Spacetile instead, with Spacetile’s own shortcuts turned off.

See Commands.

Settings and rules

  • A Settings window for everything, with undo, and a plain ~/.config/spacetile/config.json that applies the moment it’s saved. A broken file never replaces the settings that are running.
  • Rules float apps or window titles, send an app’s windows to a Desktop, or open them full screen.
  • Labels and layouts for each Desktop, shown in the menu bar.
  • Setup checks. Spacetile checks the macOS settings it relies on and links to each one.

See Configuration.

Permissions and privacy

Spacetile needs Accessibility, to move and focus other apps’ windows. Screen Recording is asked for only if you turn on window previews, and previews are kept in memory, never saved. See Permissions.

What it doesn’t do

  • Create, delete or reorder Spaces. macOS allows that only with SIP off, so add Desktops in Mission Control.
  • Change another app’s window opacity or layer, or make windows sticky. These also need SIP off. Dimming works without them; see Focused window.
  • Tile full-screen Spaces. macOS lays those out itself.
  • Ship in the Mac App Store. Its private window-server calls rule that out.