As far as I can tell, Spaces has two modes of operation related to external monitors, depending on whether System Preferences > Mission Control > "Displays have separate Spaces" is checked:
If not checked, the laptop screen and external display act as a single Space.
If checked, each has a separate set of Spaces. You can move a Space from one display to another by clicking on it in Mission Control and dragging it between displays. When the external display is unplugged, its Spaces get dumped back into the laptop's Spaces.
What I would like is this:
- Each display can show a different Space, but they all access the same set of Spaces. No rearranging happens when you plug in an external display. It just becomes another viewport that can be used to look at a different Space from that fixed set (or even the same Space, in which case it's just mirroring the laptop display).
I'm pretty confident that this is not possible with the built-in Mission Control settings. But perhaps there's a third party app out there that can do this?
I use a MacBook Pro (running Sierra) and am frequently plugging in and unplugging an external monitor. I have lots of Spaces, some desktops and some fullscreen. Most of the fullscreen Spaces are browser windows. Having them constantly move around on me drives me a bit nuts. The "Automatically rearrange Spaces based on most recent use" option helps a little, but it's not nearly as good as the seemingly trivial solution of having the same set of Spaces across all displays and never, ever rearranging, thank you very much. :-)