Window management with multiple displays and desktops

I have a MacBook Pro with two connected displays. I keep windows on all three displays, and I have found Stay - which I discovered thanks to this question - to work very well for remembering what windows go where on all three displays after I've disconnected and reconnected my monitors.

However, it's not quite what I need.

When I use my MBP with the monitors connected, I don't use multiple Desktops - it's just not the way I work. So when I disconnect my displays and just use the MBP, I'm left with a jumble of windows from all three displays (the built-in one included) all on one Desktop.

What I would like ideally is:

  • to have the windows on each monitor move to their own Desktop when I disconnect the monitors;
  • then, when I connect the monitors again, the windows would whoosh back to their respective monitors and all be on the same Desktop.
  • (In a perfect world, it would also remove the two empty Desktops while the monitors are plugged in, but I'm not sure I can hope for that.)

Can I do this with Stay, or is there another app (or system setting) I need to find to accomplish this? Is this even possible?


Solution 1:

I don't have an external monitor to test this on, but you could look at an app called Swapp that purports to be able to swap the contents of an external screen onto your main display. I'm not sure if it works with more than 1 external monitor, but in theory you might be able to switch to a 2nd desktop on your MBP, and swap the windows from an external monitor onto it, hopefully being able to repeat the trick with a 3rd monitor on a 3rd desktop space.

There is also Display maid which looks similar.

Both have free trials.

You could also try this relatively simple but manual trick to shove windows to another desktop space, either before removing your external monitors or after:

Enable Desktop Space control keys in System Preferences > Keyboard > Keyboard Shortcuts > Mission Control, check the boxes as follows:

enter image description here

To move windows, click and hold on any window titlebar and hit Control+2, Control+1, or Control+3 to instantly bring the chosen window to the desktop corresponding to the keyboard shortcut