Guide · macOS Spaces

Mac Apps Keep Opening on the Wrong Desktop? How to Pin Them to a Space for Good

This is one of the most persistent complaints about macOS Spaces, and there is a built-in fix that most people have never touched, plus a bigger question about whether you even want the pin-to-a-Space approach at all.

You open your Mac in the morning. You have three Desktops set up: one for client work, one for personal browsing, one for messaging. You launch Slack. It opens on Desktop 1, right on top of the client project you were about to focus on. You drag Slack over to Desktop 3 where it belongs. Ten minutes later, you Cmd-Tab to it and macOS jumps you back to Desktop 1. Later that afternoon, you restart your Mac, and every single app has forgotten where it was supposed to be.

Here is the official fix, the known failure modes, and the approach that survives all of them.

Dock: right-click appOptions → Assign ToNonethe default: the window opens on whichever Space is activeThis Desktopthe app always opens on this Space — the fix, when it sticksAll Desktopsthe app follows you to every Space
The three Assign To options, and the one that pins an app to a Space.
01

The macOS built-in fix: Assign To

Every app that appears in your Dock can be told which Desktop it should open on. Open the app you want to pin, right-click (or Control-click) the app's icon in the Dock, hover over Options, and under Assign To choose one of three behaviors: All Desktops (the app opens on whichever Desktop you are currently on), This Desktop (the app is permanently pinned to the Desktop that is currently active), or None (the default, where macOS decides, which is the source of most of the frustration).

In practice

For the pin-to-a-specific-Desktop behavior, switch to the Desktop you want the app on, then set Assign To → This Desktop. That is the official answer, and it works for many people, most of the time.

02

Why Assign To fails for a lot of people

If you have tried Assign To and it still misbehaves, you are not imagining it. Multi-window apps are the first failure mode: Assign To pins the app, not each window, so a Chrome window on Desktop 1 and another on Desktop 3 can only both be sent to the same Desktop. Some apps (Slack, Notion, and a few Electron-based apps) restore their own window state on launch and can end up on the wrong Desktop before macOS enforces the assignment. Sleep-and-wake and monitor changes frequently make Spaces lose its assignments, with windows landing on Desktop 1 by default. macOS point updates inconsistently preserve Assign To settings. And there is no cross-Mac sync, so a desktop and a MacBook each need their own configuration.

In practice

If your setup hits any of these, stop re-doing the assignments. The problem is the model, not your configuration.

03

The three paths people actually take

Path 1: live with it, and drag Slack back to Desktop 3 a few times a day. Fine if you use two Spaces or fewer. Path 2: set up Assign To for every app. Works if your setup is stable, your apps are simple, and you never change monitors, which is rare. Path 3: stop thinking about apps and Desktops as separate things. Instead of pinning individual apps to individual Desktops and hoping macOS respects the assignment, you save your entire working context (apps, browser tabs, window positions, Focus Mode) as a named workspace, and open the whole thing in one click when you need it.

04

Why the workspace approach is more reliable

The pin-apps-to-Spaces mental model treats each app as an independent thing that has to be told where to live. The workspace approach treats what you are doing (Client X project, Personal, Deep writing) as the thing that has to live somewhere. When you switch to Client X project, every app that belongs to it opens, every browser tab loads, every window returns to its saved position, and the notifications you don't want are silenced. It survives what Assign To doesn't because the workspace state is stored explicitly, not left to macOS to remember: it works across restart, sleep, monitor changes, and system updates, multi-window apps come back with their specific windows and positions, browser tabs return to the right browser profile, and Focus Mode is set to whatever the workspace requires.

In practice

Ikuna does not pin apps to specific macOS Desktops the way Assign To does. It replaces the need to pin them, by making the whole workspace one restorable unit.

05

When Assign To is still the right answer

Assign To is enough when you only use one or two Desktops, when you mainly want a single messaging app (Slack, Messages) to always live on a specific Desktop, and when you do not restart often and use one monitor. In that setup, right-click → Options → Assign To → This Desktop is free and takes 10 seconds per app. Reach for a workspace tool instead when you switch between three or more projects, clients, or modes, when you have a MacBook and an external monitor and the arrangement keeps breaking, when you want your setup to survive restarts and system updates, or when you care about browser tabs and Focus Mode being part of the workspace, not just window positions.

Doing it with Ikuna

Ikuna is built for exactly this: saving complete work contexts and restoring them on demand, on macOS 13 and later. Each saved context is called an Ikuna.

  • Save the live state: capture the apps, browser tabs, and window layout as they are right now, with no manual list to maintain.
  • Restore in under 3 seconds: one click relaunches the apps, reopens the tabs in the right browser profile, and rebuilds the window layout across your monitors.
  • Survives restarts and monitor changes: the workspace state is stored explicitly, not left to macOS session memory.
  • Free tier covers up to 4 saved workspaces: no card needed. Pro is €9/month or €70/year for unlimited workspaces, with no lifetime deal.

Native macOS · Local data · Built in EU

Common questions

My apps keep opening on my external monitor when I want them on the built-in display.

Same underlying problem. Assign To → This Desktop, but again, unreliable on monitor changes. Workspace tools capture per-monitor positions and restore them.

How do I keep Chrome on Desktop 2?

Chrome is one of the multi-window apps where Assign To struggles. Chrome-specific fix: use separate Chrome profiles per project, launch the profile you need, and let a workspace tool handle where the window lands.

Assign To isn't showing up in the right-click menu.

The app has to have been opened at least once in the current session, and the Dock has to be showing standard app icons (not the compact mode from certain third-party Docks).

Can I do this for windows, not apps?

Not natively. macOS pins apps, not windows. Per-window persistence requires a workspace tool.