Spaces on a MacBook with an external monitor
At your desk you have two displays and a row of Spaces on each. On the road you have one. Spacepal helps with both halves: one overview and one set of shortcuts across every display while docked, a profile that switches with your displays, "Prepare to Unplug Displays" before you leave, and a saved layout it restores when you plug back in. One honest limit up front: putting windows back depends on your macOS version, explained below.
Recommended macOS settings
- Displays have separate Spaces (System Settings, Desktop & Dock, Mission Control). Leave it on so each display keeps its own row of desktops. Changing it takes effect after you log out.
- Automatically rearrange Spaces based on most recent use: turn it off, or desktop numbers and names drift. Settings, Setup in Spacepal checks this for you in the direct version.
- Keep the same arrangement and main display in System Settings, Displays, so macOS recognizes the setup each time you dock.
Working across two displays
- One overview. ⌥Tab shows the Spaces of every display together. Turn off "Show Spaces from all displays" in Settings, Overview to see only one.
- One numbering. Desktops are numbered across displays in Mission Control order, so with three on the laptop and three on the monitor, ⌃⌥4 is the monitor's first desktop.
- Names that stay put. Names, colors and notes are tied to each Space, not its position, so the monitor's desktops get their names back when you reconnect.
- A toolbar per display. "Floating Space toolbar on each display" (Settings, Appearance) shows the current Space on every screen, and remembers where you put it on each display.
A profile for the desk, one for the road
A profile is a full set of names, colors, notes and automations. Set up your Spaces while docked, then in Settings, Profiles save them as "Desk" and choose Use automatically with the current displays. Do the same undocked as "Laptop". Spacepal then switches profile on its own when the set of connected displays changes, and shows a short message when it does. You can also switch from the menu or with spacepal://profile/Desk.
Before you unplug
When more than one display is connected, the Spacepal menu shows Prepare to Unplug Displays (also spacepal://eject, handy on a Stream Deck key or in a Shortcut). It saves the current layout, then moves each external display's windows to the built-in display's desktop in the same position: the monitor's first desktop to the laptop's first, and so on. If the laptop has fewer desktops, the rest go to its last one. A message tells you how many windows moved and that it is safe to unplug.
When you plug back in
Spacepal keeps a separate layout for each combination of displays. With "Put windows back when an external display is reconnected" on (Settings, Windows, on by default), it restores the layout it last saw for that combination a few seconds after the display returns. With "Remember where every window is (every 5 minutes)" on, the layout is also saved regularly, and after a restart Spacepal offers to put windows back on their Spaces.
Which macOS versions can put windows back
Prepare to Unplug, the restore on reconnect, the restore after a restart, and "Apps that belong here" rules all move windows that are not in front. Spacepal does that with a direct WindowServer move, which works on macOS 14.0 to 14.4 and on macOS 26.4 and later. On other versions macOS ignores that call and those windows stay on the Space they are on. Spacepal still sets each window's saved size and position, just not its Space. Moving the front window with ⌃⌥⇧ plus a number, the menu bar, or "Move Front Window Here" in a Space's right-click menu in the overview works on every supported version, because Spacepal falls back to dragging that window by its title bar.
Other limits
- Full screen windows are not moved. Leave full screen first.
- Windows are matched by app and title, then by app alone, so windows whose titles change may come back in a different order.
- If the laptop needs more desktops, the direct version can add one from the menu (Mission Control opens briefly while it works). The Mac App Store version cannot, so add them in Mission Control.
Related
- Windows pile onto the laptop when you unplug a monitor
- Windows on the wrong desktop after a restart
- Move windows between Spaces
- Spacepal is a one-time purchase with a 14-day trial
Written by Dan Bayer, developer of Spacepal. Last updated 2026-10-27.