The solution: Mission Control, but for Spaces and multiple displays.
Like regular MC, you’d have a row of spaces at the top of the screen. Unlike regular MC, the spaces are what gets dragged around.
Below the row of spaces are the rectangles for each display, showing a preview of each space in whatever display(s) it’s assigned to.
These displays can be assigned relative positions. By default, new displays come in at the right. Displays can be ‘magnet docked’ together in much the same way that System Preferences does it.
Drag a space from its row to the display to assign it to that display.
If the space being dragged is already assigned to another display, there are two possible behaviours:
- Desktop Space (a) onto existing (b): (a) replaces (b) in that display, and forms an extended desktop with the other displays containing (a)
- Full-Screen App (a) onto existing (b): (a) and (b) swap displays.
Here's a picture of the proposed system. I've colour-coded Spaces for convenience.
Finally, there's the question of mirroring. Displays can 'already' be moved around when holding option. Perhaps dragging one display over another should designate it as a mirrored version? The mirrored display(s) would be designated by a badge on the main, with options to set resolution etc.