The Spacetile field guide

Spaces and layouts

Switching and sending, layout modes, stack on overflow, holes and Space counts.

On this page
One Mac. More room.Separate Spaces enabled

Studio Display

Safari
Notes
Mail
Mail
Messages
Notes
Safari

MacBook Pro

Safari
Notes
Music
Each display has its own Desktops. ⌥ + a number switches Spaces on the active display. macOS full-screen apps have their own Spaces too.

Native Spaces

Spacetile uses the Spaces you create in Mission Control. It can’t create, delete or reorder them, because macOS only allows that with SIP off. Spaces are numbered as Mission Control labels them: each display has its own Desktop 1, 2, 3…. Settings shows as many as your busiest display has:

  • the keycaps in Keys;
  • the pickers and rules in Rules;
  • the rows in the Spaces tab;
  • the Space chips in the profile designer.

Settings for Spaces you haven’t created are kept in config.json, ready for when you add them. If you have only one Space, Setup suggests adding a few.

Several displays

Spacetile tiles the Space showing on every display, each within its own display. Commands follow macOS:

  • ⌥1…⌥0, next, previous and last switch Spaces on the active display, the one with the menu bar (where the pointer is).
  • Sending a window to Space N uses Space N on the window’s own display.
  • display next / display prev focus the display to the right or left, and send display next / send display prev move the focused window to the Space showing there. Displays run left to right as arranged in System Settings.
  • Dragging a tiled window onto another display drops it into that display’s tiling, with the same swap and insert highlights, or “Move to display” when that Space is empty.
  • Space labels and layout modes in Settings apply to Desktop N on every display. App → Space rules send windows to Desktop N on the active display.
  • In the mini-map each display has a row of its Desktops, as the Spaces bar in Mission Control shows them, wrapping onto more lines rather than hiding any. The active display is labelled active; the current Desktop has a white ring and a filled number. While you drag a window, the card it would land on lights up in the accent colour with Move Here. Empty Desktops are dimmed.
  • The button at the top right of the mini-map’s Desktops (or Window → Spaces) opens the same map in a glass panel across the top of the screen, like Mission Control’s Spaces bar: a row per display that scrolls sideways. It stays open while you click between Desktops and drag windows onto them; a click outside it or Esc closes it. It keeps itself current while open.
  • The menu-bar item describes the active display and switches as soon as focus moves to another one. macOS shows the same item on every display’s menu bar, so choose the Every display index style (Settings ▸ Menu Bar) to see each display’s Space at once.

Both settings of “Displays have separate Spaces” (System Settings ▸ Desktop & Dock) work, and Spacetile follows macOS in each:

  • On (the default): each display has its own Desktops, as above.
  • Off: one set of Desktops spans every display, and switching changes all displays together, as macOS does. Each display still tiles its own windows on the current Desktop. The mini-map shows one card per Desktop with every display drawn inside it where it sits; dragging a window onto a card changes its Desktop and keeps it on its display. Windows stay visible on their display; Spacetile only tracks which display each one is on. The setting takes effect after logging out.

After the Mac wakes, or when displays are connected or removed, Spacetile waits for things to settle and lays every display out again; a profile bound to the new set of displays loads instead.

Switching

⌥1…⌥0 switch with a synthetic trackpad swipe, which is instant with no slide animation. This needs the trackpad “Swipe between full-screen apps” gesture turned on. If a switch doesn’t land, Spacetile steps there with the Ctrl+←/→ shortcuts instead, with the usual animation. Both step through full-screen apps’ Spaces as well as Desktops, so Spacetile counts the steps over every Space, and switching works from a full-screen app too.

Sending

⌥⇧1…⌥⇧0, ⌥⇧. / ⌥⇧, and fn + drag to a screen edge move the focused window to another Space through the window server. That works with SIP on, takes about 15ms, and lays the window out on the target Space before you arrive. “Follow after sending” in Settings → General decides whether you go with it. Dragging a window between Spaces in the menu-bar mini-map never follows.

Windows you drag between Spaces in Mission Control join the right layout the next time the Space changes.

Full-screen apps

A window you make full screen (its green button, ⌃⌘F or ⌥⇧f) gets a Space of its own, which macOS adds after the last Desktop; two windows in Split View share one. Spacetile doesn’t tile these Spaces, and can’t move them: drag one in Mission Control to put it somewhere else.

Spaces are numbered by their place in Mission Control, full-screen ones included, so ⌥2 opens a full-screen app sitting second and ⌥⇧2 refuses to send a window there. Dragging a full-screen app before a Desktop shifts that Desktop’s number by one. Labels, layouts, app rules and profiles stay with the Desktop: a Desktop labelled “Comms” keeps its label and its Slack rule when it moves from 2 to 3.

  • Leaving full screen puts the window back in its tile, beside the same neighbours, as long as one of them is still there.
  • The mini-map and Spaces window show them where Mission Control does: a narrower card with the window (or both Split View windows, at their real widths), its number and the app’s name underneath. Click one to switch to it. Windows can’t be dropped onto them, since macOS lays those Spaces out itself.
  • The menu-bar item keeps the number and shows the full-screen mark ⤢ in place of the layout mode. The stepper style draws full-screen Spaces as small diamonds among the Desktops’ squares.
  • ⌥. / ⌥, go to the Desktop either side of a full-screen app; space fullscreen next|prev step between full-screen apps.
  • fullscreen pair puts the focused window and its neighbour into Split View, each on its current side. Spacetile presses the app’s Window ▸ Full-Screen Tile item, then clicks the neighbour in the picker macOS shows. If the neighbour doesn’t show up there, a blue note says which window to choose. macOS greys the item out for some windows; those get a red note. Leaving full screen takes one window out at a time: the other stays full screen until you take it out too.
  • Rules → Open full screen makes an app’s new windows go full screen, after any Space rule has moved them.
  • Profiles record full-screen apps and Split View pairs and make them full screen again when applied (see Profiles). Each lands after the last Desktop, so Desktop numbers don’t move.

macOS tiling

macOS has its own window tiling: the menu on the green button (Move & Resize, Fill & Arrange), Window ▸ Move & Resize, and the fn⌃ arrow keys. With “Use macOS tiling with Spacetile” on (Settings → General, on by default), Spacetile reads what it did to a tiled window and makes the matching change, so the window stays where macOS put it and the other windows re-tile round it:

macOS Spacetile
Left, Right, Top or Bottom place left … at ½
A quarter place top-left …
Fill zoom
Arrange (two, three or four windows) Those windows tile in that shape; the Space’s other windows stack behind the last tile
Several windows tiled together into one half Those windows keep that half in their shape; the Space’s other windows tile in the other half
Return to Previous Size restore (or zoom off, after Fill)

Floating windows and float-layout Spaces keep whatever frame macOS gives them. Stack-layout Spaces put windows back to full size. With the setting off, Spacetile puts tiled windows back where its layout has them.

Dragging a window to a screen edge to tile it still competes with Spacetile’s drop zones, so Setup suggests turning that one off (System Settings ▸ Desktop & Dock ▸ Drag windows to screen edges to tile).

Layout modes

Each Space has a mode, set in Settings → Spaces (or a profile) and changed live with ⌥d / ⌥s:

Mode Behaviour
BSP Windows tile. A new window splits the focused tile along its longer side, and the existing window keeps the default split ratio (0.5 unless set)
Stack Every window fills the Space; ⌥n / ⌥p and the focus keys cycle through them
Float Spacetile leaves the windows where you put them

A mode change in Settings applies to Spaces laid out from then on. Use ⌥s / ⌥d to change the Space you’re on.

Floating windows (⌥f, or apps in the “Always float” rule) sit outside the tiling on any Space.

Stack on overflow

Some apps refuse to shrink below a minimum size. Spacetile reads each window’s frame back after placing it, and remembers the smallest size the window accepted.

  • A new window that wouldn’t fit beside the focused window goes to the roomiest tile that can split either way without squeezing anyone below their minimum. Only when no tile can does it join the focused window’s tile as a stack.
  • A tile that turns out too small merges into its neighbour as a stack.
  • Stacks split back out when windows close and there’s room again.
  • A window may come up to one gap short of its minimum. It takes that part of the gap beside it, so nothing overlaps.
  • A drop that can’t split (dragging a window onto a tile’s edge) stacks instead, and a red note over the tile names the window that needs more room, for example “No room to split: Google Chrome needs to be at least 469 pt tall”.

⌥n / ⌥p cycle through a stack. The menu bar can show how many windows are stacked out of sight, for example “+2”.

Holes

Holes are empty tiles that keep a placement’s shape when there aren’t enough windows to fill it. For example, placing the only window on the left half leaves a hole on the right.

  • Holes show the desktop. Focus, swap and join skip them.
  • New windows fill them. The next window opened on that Space fills the first hole.
  • Dropping fills them. Dropping a window onto a hole fills it.
  • They go away when a window on that Space closes, or when you balance.

Restore

restore (⌥⌃r) puts back the layout from before a run of place, grow and shrink commands. Any other change to the layout starts a new run. Windows closed since are left out, and windows opened since are added back as usual.

Click the menu-bar item for a map of every Space with its windows drawn as app icons:

  • click a Space to switch to it;
  • click a window to go to it;
  • drag a window onto another Space to send it there.

Floating windows have a dashed outline and the float symbol; hover one for the shortcut that tiles it again.

Above the map, a switch turns tiling and Spacetile’s shortcuts off and on. Below it, your profiles are listed to apply in one click (the last applied is ticked), with Save Current Layout… and Edit Profiles…, then Settings and Quit. Retiling and layout modes are left to their shortcuts.