I recently upgraded to a new MacBook Pro and for an unknown reason, the same monitors I was using on my 2019 MacBook Pro experience trouble with their arrangement on this new 2023 MBP. Specifically, each time I wake the computer from sleep the position of the two external monitors will be swapped. To fix the problem, I either need to put the computer back to sleep for several minutes or manually rearrange the position of the monitors in MacOS. To say the least, this is tremendously annoying.
While I have not been able to completely solve this problem, I’ve improved the situation and wanted to share my solution with others in case the information is helpful.
I am using a pair of identical monitors called “Packed Pixels“. I really like the small footprint of these monitors. For being independently produced, they’re very well made. However, there is obviously a problem with the monitors in this situation and my first question became, “Are the computer monitors the culprit of the issue or is the culprit MacOS?”
My searching led to an April 2022 post on an Apple forum about this issue occurring with Samsung monitors. In this post, someone who clearly knows a thing or two recommends entering the following line in Terminal:
ioreg -l | grep EDID
This code asks the computer to provide Extended Display Identification Data (EDID). EDID is information that describes a display’s capabilities to a video source. After running this code in Terminal, I get the following:
Comparing the results for the two monitors connected to my laptop reveals that they are identical in every way except for the ‘port ID’.
What appears to be happening is that MacOS sees these two monitors as identical in every discernable way. When the computer wakes up from sleep, it has a process where it looks at the external monitors attached, tries to identify them, and then uses the identities found to consult a record of where those monitors are supposed to be arranged in relation to each other and the primary display. Because MacOS sees these two monitors as identical, this process ends up swapping the two.
What I cannot account for is why MacOS consistently swaps the monitors every time the computer wakes from sleep. It would make more sense if this problem occurred randomly or intermittently.
Whose Fault Is This?
Well, there’s probably a shared responsibility here.
Packed Pixels should have distinguished the EDID of their monitors. Each monitor should not have the same serial number. I don’t know if it’s possible for me to edit the EDID on my monitors. I suspect it is not. I have reached out to the maker of the Packed Pixels about this issue and have not heard back yet.
While Packed Pixels could have distinguished their monitors, MacOS is clearly doing something odd here too and could do more to handle failure conditions like this one. MacOS should not make the assumption that the user is swapping the ports the monitors are plugged into each time the computer is woken from sleep. In the EDID above, the monitors each have a unique ‘port ID’ which is the USB-C ports they are plugged into. MacOS should be smart enough to realize that these ports correspond with unique monitors that are not being re-positioned. It would also be quite helpful if MacOS would let me manually identify identical monitors so that from then forward they could be considered unique.
Is There a Solution?
I have not found a complete solution to this problem outside of purchasing a new monitor. However, I have found a piece of software that serves as a band-aid solution until I can figure out something better.
SwitchResX is an app that gives fine control over the display settings used when specific configurations of monitors are plugged into a machine. After installing the app, opening the ‘Display Sets’ settings tab reveals options to create display new display sets.
My display sets are creatively titled:
For the first display set, I gave it the hotkey of Ctrl-Option-Cmd-1 and saved the current arrangement of the monitors:
Then for the second display set, I first needed to rearrange the position of the monitors using the Display panel in System Settings. Once re-positioned, I created a new display set, gave it the hotkey Ctrl-Option-Cmd-2, and ensured the ‘Placed at’ X-axis values were reversed relative to set 1:
Now I have the ability to slap one of these keyboard shortcuts to immediately rearrange the position of my external monitors. If I wanted to get real fancy, I might be able to sort out an AppleScript that automatically switched between these two display sets.
However, I fear that this solution is not going to last forever as looking at SwitchResX’s website reveals that it’s very old. The fact that it hasn’t been updated in a long time indicates that this software probably won’t be supported on new Macs for a whole lot longer. I’ve seen many instances of this in the past with other Mac software and learned that I cannot rely too heavily on band-aid solutions from random 3rd party developers. Nevertheless, I’m thankful that I at least have a solution to work with for the time being.