← All articles

How to make an app open on a specific monitor on Mac (and why it keeps forgetting)

You want Slack on the side monitor and your editor on the big one, every time. macOS has no setting called "open this app on that display", so anyone trying to make an app open on a specific monitor on a Mac ends up stitching together three separate behaviours — Spaces, window restoration and the main display — each of which covers part of the job and quietly fails in its own way. Here's what each one actually does, the order to set them up in, and what to do on the days they don't hold.

How macOS decides which monitor an app opens on

There's no single rule, but in practice it works down a short list:

  1. Where the window was last time. Apps that restore their windows (most of them, with the default settings) reopen at the position they were closed at — as long as that display is still connected.
  2. The display you're working on. A brand-new window with no remembered position usually lands on the display holding the window you're focused on.
  3. The main display. At login, after a display disconnects, or when an app has nothing to go on, windows fall back to the main display — the one with the menu bar in System Settings → Displays → Arrange.

Make an app open on a specific monitor on Mac with Assign To

The closest thing macOS has to a per-app monitor rule lives in the Dock, and it works through Spaces rather than displays:

  1. Check System Settings → Desktop & Dock → Mission Control → Displays have separate Spaces is on. With it on, every display has its own set of Spaces, so a Space belongs to one monitor. (Changing it needs a log out.)
  2. Open the app and move its window to the monitor you want.
  3. Control-click the app's Dock icon → Options → under Assign To, choose This Desktop.

From then on, the app opens in that Space — and because that Space lives on that monitor, on that monitor. Some macOS versions also list Desktop on Display entries here; they come and go between releases, so This Desktop is the reliable route.

The catches are real, though:

  • It's per app, not per window. A browser with a research window on one screen and a meeting window on the other can only be assigned once.
  • It's tied to a Space, not a monitor. If that Space disappears — a display unplugged, Spaces rearranged after a macOS update — the assignment has nothing to point at and the app opens wherever you are. We dug into why Space identity drifts in windows on the wrong Space after waking.
  • No Assign To section? It only appears when there's more than one Space. Add a second desktop in Mission Control and it shows up.

Let apps reopen where you left them

The second lever is window restoration. In System Settings → Desktop & Dock, the Close windows when quitting an application checkbox decides whether an app's windows come back on quit and relaunch. Turn it off, put the app's window on the monitor you want, quit with ⌘Q, and it should reopen on the same monitor next time.

It's a blunt instrument: it affects every app, so document apps reopen whatever you had open too, and some apps keep their own position memory and ignore it either way.

Choose the right main display

Whatever can't be pinned falls back to the main display, so make sure the main display is the one you'd want as the fallback. In System Settings → Displays, click Arrange, then drag the small menu bar strip onto the monitor you want as main — usually the big screen in front of you, not the laptop to the side (more in window layouts for two monitors).

Which method controls what

MethodControlsSurvives unplugging?Main catch
Dock → Options → Assign ToOne app → one Space (and its monitor)Not reliablyPer app, not per window
Window restorationEvery app's last positionOnly if the display returnsReopens old documents too
Main displayThe fallback for everything elseYesOnly one display can be main
Automation (Keyboard Maestro, Hammerspoon)Anything you scriptYes, if you script itYou maintain the rules
Layout apps (Stay, Moom, Rectangle Pro)Whole window setsDesigned for itAnother app restoring in the background

The last two rows are the heavy-duty options: a script that moves an app to a named display whenever it launches, or an app that snapshots a whole layout and re-applies it when a display reconnects. Our guide to saving window layouts on Mac compares the layout apps in detail.

Why it keeps forgetting

If apps open on the right monitor at your desk and the wrong one every Monday, the display is coming and going. When a monitor disconnects, macOS moves its windows to the remaining screens, and that becomes their remembered position (more in why Mac windows resize when connecting a monitor). No setting fully prevents it, so the fix has to be fast as well as automatic.

When it opens on the wrong screen anyway: one move, not a drag

At some point an app will open on the wrong monitor anyway. Dragging it across and resizing it for the new screen is two fiddly mouse jobs.

Let's Tile makes it one keyboard move. Press ⌘↵ and a grid drops over the window; press ⌘⇧ + arrow and the grid jumps to your other display; pick the cell and hit ↵. The window arrives on the right monitor already sized to the spot you chose, instead of keeping dimensions meant for another screen. Pro also remembers a different grid per display — say, thirds on an ultrawide and halves on the laptop — so the layout fits whichever screen the window lands on.

To be straight about the limits: Let's Tile doesn't watch for app launches or auto-place windows by rule. If you need "Slack always opens on monitor 2" with zero keystrokes, that's the Assign To or automation row above. Tile is for the moment that rule doesn't hold — and for everything you never wrote a rule for. The free version gives you the 3 × 2 grid (halves, thirds, two-thirds, quarters) forever; moving windows across displays and per-display grids are part of Pro, $9.99 once, no subscription, no account, up to 20 devices per key.

And if the window opened on the other screen and you just need to get to it, Let's Switch lists every open window across all your monitors, most recent first, behind ⌥⇥ — no hunting for which screen it ended up on.

Frequently asked questions

How do I make an app always open on my second monitor on a Mac?

Turn on Displays have separate Spaces, move the app's window to the second monitor, then Control-click its Dock icon → Options → Assign To → This Desktop. Make sure the main display is the one you'd want as a fallback when that doesn't hold.

Why do my apps keep opening on the wrong monitor?

Usually because a display disconnected (sleep, undocking) and macOS moved the windows to the main display, which then became their remembered position. Fix the main display first, then re-place the windows.

Can I assign a single window, not the whole app, to a monitor?

Not with macOS's own tools. Assign To works per app. Per-window placement needs an automation tool, a layout app, or placing the window yourself.

Does Assign To work in full-screen apps?

Not dependably. A full-screen app gets a Space of its own, separate from the desktop you assigned it to. For apps you want pinned to a monitor, use a regular window — maximized or tiled — instead.