I'm using a MacBook Pro (Late 2011) connected to two Thunderbolt displays. The displays are chained together, and one Thunderbolt connection is made to the MacBook Pro.

I prefer to have the left monitor function as the primary display (I want the dock to live on the left). Using the Display System Preference Pane, I can set this configuration with no issues.

Every morning, I connect the displays to the MacBook Pro and I disconnect every evening.

Some days, seemingly at random, the display configuration is changed and the right monitor has the dock and menu bar instead of the left.

Is there any way to ensure the display configuration remains the same?

  • Just for the record, could you clarify, (1) you have the brand new current (March 2012) MBP, and I guess it is either the 15 or 17 inch? (2) you DAISY CHAIN the two monitors (the MBP has only one Thunderbolt port) ? {To be clear - there is a lot of info on the internet that supposedly you CANNOT daisy chain apple thunderbolt monitors: supposedly, with thunderbolt monitors can only be the "end" of a chain. But perhaps this rumour is complete nonsense?} (3) Finally can I ask you, to be clear all three monitors are logical displays, is that right? i.e. NOTHING is mirrored - you can wipe your mous
    – user19967
    Mar 11, 2012 at 13:36
  • MBP is new/current, but from February, 17-inch. Monitors are daisy-chained. All monitors are logical displays, though I shut the MBP and don't use it's monitor when connected to the external displays.
    – jro
    Mar 11, 2012 at 22:57
  • > if you DO open the MBP, do you the get three totally separate logical monitors? Yes.
    – jro
    Mar 12, 2012 at 17:40
  • > when you unplug.....I only attach the chained monitors to the MBP. MBP is never opened, so it's in sleep mode when I connect it.
    – jro
    Mar 12, 2012 at 17:41
  • I would hate to suggest this but have you tried (or can you try) 2 different models of external monitors?
    – databyte
    Mar 13, 2012 at 19:39

6 Answers 6


OSX has to guess which monitor is which, since the EDID info is the same for both (save the serial number, presumably, but OSX doesn't appear to pay attention to that). It usually tries to set things up to the previous setup by looking at how the devices are attached in the connection tree, however with Thunderbolt the connection tree isn't as simple as it was with displayport and USB.

You should be able resolve this by attaching one monitor at a time (ie, unplug the thunderbolt connection for the third monitor, attachthe second, then plug the third back in). However that's less than ideal, especially since all your apps will go back to the main monitor, rather than how you had them set up previously.

When Apple releases a refresh of the thunderbolt display, attaching one of the old ones and one of the new ones should also resolve the problem - they won't appear to be the "same" device, and so OSX will have an easier time keeping track of which is which.

Until that happens, another thing you can try is attaching the third one with a thunderbolt extension cable. It's an active device, and may alter the connection tree enough that OSX will have an easier time keeping track of it.

If that doesn't help, your best bet will be to wait until they refresh the thunderbolt display and upgrade only one of them when they do.

  • 1
    I had to beat my head against OSX for several months writing a video driver. OSX is smart in most ways, and dumb in some others. The major problem being that when it's dumb there's often no easy workaround.
    – Adam Davis
    Mar 20, 2012 at 17:40

This worked for me, credit to this answer:


Play around with moving the "top" bar between screens in the Arrangement window. Assign it to different screens and you will notice it will solve your issue once you find the "right" screen.

So, monkeying with the menu bar in the arrangement settings will reset your displays proper. I even got screenshots.

How to move the top bar between mac windows


The free terminal tool I wrote, displayplacer, allows you to configure the "white bar" primary display via scripts/hotkeys.

Configure your screens how you like, drag the "white bar" to your primary screen in the macOS system settings, and then execute displayplacer list. It will output the command to run to put your screens in their current configuration. The screen with origin:(0,0) is the main display with the "white bar". Run this terminal command through a script, Automator, BetterTouchTool, etc.

This example makes the left screen the primary monitor. Execute a similar command whenever your machine randomly chooses the wrong primary display. displayplacer "id:<leftScreenId> res:1920x1080 scaling:on origin:(0,0) degree:0" "id:<rightScreenId> res:1920x1080 scaling:on origin:(1920,0) degree:0"

Also available via Homebrew brew tap jakehilborn/jakehilborn && brew install displayplacer

  • ive managed to use this app on an M1 mac to list the current orientation. then i put that command into an alias for zsh and i can reset my screens. next step, bind a key combe for the command. super useful tool, thanks.
    – bytejunkie
    Jan 24 at 14:37
  • THANK YOU! life saver Jan 28 at 19:32
  • This is brilliant. Thank you Jake! This worked like a charm after following this github.com/jakehilborn/displayplacer/issues/… Apr 24 at 21:33

I suffer the same problem, each morning when I come to the office about 80% of the time my Mac wrongly selects the left most TB display as primary >:@

Getting tired of going to the settings display every time, I wrote a very simple console App to swap the screens for me: "ScreenPhant" (like elephants and memory; dig :-P)

It is really too simple, but I have no time now to make it any fancier (like staying resident and monitoring display changes automatically etc.). If you just start it, it will list the displays and serials. Pass the serial of the display you want as primary and it will set it. If you rename the App like "ScreenPhant_151d050f" it will use the _[serial] for the primary display so you don't need an extra script to launch it.

You can download here: http://www.dialxs.com/dev/ScreenPhant.gz Source is available here: http://www.dialxs.com/dev/main.c


I narrowed down this race condition thanks to /var/log/displaypolicy/displaypolicyd*.log and to the "Graphics/Displays" tab in "System Information" and in which order external monitors are listed there. MacOS (Mojave, Catalina 10.15.3,...) could rely on the serial numbers of the monitors seen in the latter to remember the arrangement, but it looks like macOS doesn't care about monitor serial numbers.

It's easier to reproduce this issue if you don't use daisy chaining but a dock or direct connections to the mac instead. If you connect the dock to the computer first and then the monitors to the dock second while observing /var/log/displaypolicy/displaypolicyd*.log (.log missing from the Console app for some unknown reason), you'll see macOS labels identical monitors on a first come, first serve basis, ignoring not only serial numbers but also physical connectors.

Don't get me wrong: macOS shouldn't look at the physical ports either. It should look at the serial numbers: the only thing guaranteed to never change or race or be accidentally swapped by the user.


Another simple workaround for this problem: keep your displays powered off, and turn them on in the same order after connecting them to your Mac.

If you only have two displays, you only need to power cycle one of them.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .