How can I keep the same desktop arrangement on two different multi-monitor setups? My machine is a late 2012 rMBP which happily powers two displays at home and two different displays at my office in what is essentially the same arrangement. My laptop is on the right with the two additional displays to the left. I consistently plug the same monitors into the same ports.

The problem that I always have is the desktops appear on different monitors depending on my location. Example:

At home, I open Google Chrome and put it in full screen mode on my leftmost display. I open iTerm and put it in full screen on my middle display. I open Mail and put it in full screen mode on my laptop display.

Now I disconnect the monitors and go to the office. I plug in my office monitors to the same ports in the same order, and Mail is on my leftmost display while the Chrome browser appears on my laptop monitor. What the heck? So I go to expose mode or whatever its called and switch them around. No big deal, right?

Well, in reality I have about 5x that many programs open at any given time and I always want them to appear on the same displays. I never want Chrome on the tiny laptop display and I never want Mail on the enormous leftmost display. After two years of dragging windows back and forth twice a day it has become the most infuriating thing in my life! (pretty good life, no doubt)

Is there any way to save the desktop arrangements so that they consistently display on the desired monitor? Ideally, any monitor plugged into the same display port would display a specific desktop.
I have a similar setup and now that I'm thinking about this, using Spaces is the key.


Go to System Preferences > Mission Control
Enable "Displays have separate spaces"
In the Dock, right-click (or option-click) an app.
Under Options, assign that app to the appropriate space and display.


I'm currently at home where I only have a single external monitor but it is working. 

Apps assigned to the monitor are on the monitor. I unplug it and the apps all go on the laptop. When I plug the monitor back in again, regardless of port, they appear on the external monitor.