The monitors are already connected, and the new window still lands on the laptop. Here is why, what to try for free, and how to put a saved layout back.
macOS often opens a new window on the display that holds the menu bar, or on a screen the app remembered from last time, even when your other monitors are already connected. There is no built-in setting that assigns every app to a specific display. Moving the menu bar, or dragging a window and quitting the app, sometimes helps and often does not stick. SnapState saves the layout you arranged and, when you restore it, puts those windows back on the screens you chose.
Why do Mac windows open on the wrong screen?
The display with the menu bar is the main display. Many new windows open there, so a laptop that still owns the menu bar keeps collecting apps you wanted on the external monitor. An app can also store the last position of its window. If that monitor was asleep, unplugged, or arranged differently the last time you quit, the next launch uses a stale spot and the window shows up on the wrong screen.
That is a different problem from windows piling up after you unplug a monitor, from windows jumping to one screen after sleep, and from windows resetting after a restart. Those start when a display disappears or when apps quit. This page is about the displays already being connected, and a window still opening on the wrong one. If the window is on the right monitor but the wrong size or spot, see Mac apps reopen in the wrong position. If the displays are connected but you dragged the arrangement, or a second monitor came back on the other side, see Mac windows jump when the display arrangement changes.
What free options should you try first?
Try these before you pay for anything. None of them assigns each app to a display.
- Make the right display the main display.Open System Settings > Displays and drag the menu bar onto the monitor where you want most new windows to open. This changes the default screen. It does not pin one app to one display.
- Check Displays have separate Spaces.In System Settings, under Desktop & Dock, the Mission Control section includes "Displays have separate Spaces." The wording can vary by macOS version. Turning it off changes how windows stick to a screen, and it also changes full-screen Spaces. Do not expect that toggle to fix every app.
- Drag the window, then quit the app. Move the window to the correct monitor and quit. macOS sometimes reopens it there, and often forgets as soon as the display setup changes.
- Try Stay. Stay by Cordless Dog has been free since version 1.5.1. It stores window positions for each display setup. If that covers you, it is a good free choice. See SnapState vs Stay for the difference: Stay is per-display memory, SnapState is a named workspace that also relaunches apps and the active browser tab.
How do you move windows back to the right monitor?
- Put each window on the screen you want. With every monitor already connected, drag each window to the display, and the size, you actually use. Do this before you save, not after macOS has parked a new window on the laptop.
- Save that arrangement as a workspace. Capture it from the SnapState menu bar. The snapshot stores window positions and sizes, the apps to relaunch, the monitor layout, and the active tab URL in each supported browser window.
- Let the apps open where macOS puts them. Launch your apps as usual. A new window can still land on the main display. SnapState does not intercept that first open, and it does not assign a permanent per-app display.
- Restore the saved screens. Open SnapState from the menu bar, or press the workspace shortcut (Control-Command-1 through 6). SnapState moves the saved windows back to the displays in the snapshot and relaunches apps that are not running.
- Arm a display trigger only when a monitor is appearing. If the wrong screen shows up because a display just connected, you can arm monitor connect, monitor disconnect, or a matching display layout. Those triggers watch the displays, not each new window. Wake is a separate trigger, and none of them run on login or restart.
The capture steps are the same as saving a window layout on Mac. SnapState 2.5.2 is a native Swift menu bar app. A workspace records visible windows on the current desktop, their position and size, the apps to relaunch, the monitor layout, and the active tab URL in Safari, Chrome, Edge, Brave, Arc, and Chromium once Automation permission is granted. If a monitor is missing when you restore, saved frames are remapped onto the displays that are connected.
What does a restore include, and what does it leave out?
It includes the window positions and sizes you saved, relaunched apps, the saved monitor layout, and one active tab URL per supported browser window. It does not tile or snap windows into halves and thirds. It does not save or restore macOS Spaces. Firefox is not supported. Only the active tab is restored, not the rest of the tab bar. A window that was not part of the snapshot can still open on the main display.
SnapState also does not restore by itself when you log in or restart the Mac. After a restart, restore the workspace yourself once you are logged in. Display connect, display disconnect, a matching display layout, and wake are the only automatic triggers, and they react to the monitors or to wake, not to every new window an app creates.
What are the practical details?
SnapState costs $9.99 once, with a license for up to three Macs and a 14-day refund. There is no free trial. It requires macOS 15.7 or later on Apple Silicon and Intel. It needs Accessibility permission to move windows. Workspace data stays on your Mac as JSON in ~/Library/Application Support/SnapState/.
What else should you know?
Why do Mac apps open on the wrong monitor?
New windows often open on the display that holds the menu bar, which macOS treats as the main display. Apps also remember a previous position, and that memory goes stale when a monitor was rearranged, asleep, or missing the last time the app quit. With every display already connected, macOS still has no setting that assigns each app to a specific screen.
Can I force an app to always open on one display?
Not with a built-in per-app rule. You can drag the menu bar in System Settings > Displays so more new windows prefer that screen, and you can drag a window to the right display and quit the app so macOS sometimes remembers it. SnapState does not add an always-open-on-display-2 rule either. It restores the windows you saved, on the screens you saved, when you restore the workspace.
Does SnapState move a window the moment an app opens it?
No. SnapState does not watch for new windows and shove them to another display. After the apps are open in the wrong place, restore the workspace from the menu bar or with Control-Command-1 through 6. Optional triggers are monitor connect, monitor disconnect, a matching display layout, and wake from sleep. There is no login or restart trigger.
Is this the same as windows moving after sleep or after I unplug a monitor?
No. Sleep, unplugging a monitor, clamshell mode, and switching a monitor input are about a display going away and windows piling onto a screen that is still there. This page is about windows opening on the wrong screen while the monitors are already connected. A restart is different again: apps quit, and SnapState will not restore by itself when you log back in.
Will it restore every browser tab and every Space?
No. SnapState restores the active tab URL in each window of Safari, Chrome, Edge, Brave, Arc, and Chromium when Automation permission is granted. It does not restore every tab, and Firefox is not supported. It saves only the visible windows on the current desktop, not other macOS Spaces. It also does not tile or snap windows.