Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
From:



I see:
  • Find Displays finds and filters displays on macOS


?????????????? have not tried it but it sounds good?
I tried it just now, doesn't help with this problem as it relies on the same underlying display management system.

The available filters are also quite useless for arranging:

1679998800342.png
 
  • Like
Reactions: macsplusmacs
Not sure if this is a related issue.

I got a Mac mini M2 base model yesterday. When I connected it to two displays (same brand, same model bough at the same time) using the internal HDMI port and a USB-C to HDMI adapter through a Caldigit Element TB4 hub, it was in mirrored model. I was unable to switch to extended screen mode as MacOS kept the mirrored mode on. I unplugged the HDMI adapter from the hub and plugged it directly to the TB4 port of the Mini, I was able to switch to the extended screen mode. Then, I unplugged the adapter and plugged it back to the TB4 port of the Element hub. It remained in extended screen mode. No problem working on the entire day.

This morning when I turned on the Mini, both screens were in mirroring mode again. I had to manually go to the settings to switch to the extended screen mode.

What is causing the two issues I mentioned? What is the best way to prevent these issues from happening again?
 
Not sure if this is a related issue.

I got a Mac mini M2 base model yesterday. When I connected it to two displays (same brand, same model bough at the same time) using the internal HDMI port and a USB-C to HDMI adapter through a Caldigit Element TB4 hub, it was in mirrored model. I was unable to switch to extended screen mode as MacOS kept the mirrored mode on. I unplugged the HDMI adapter from the hub and plugged it directly to the TB4 port of the Mini, I was able to switch to the extended screen mode. Then, I unplugged the adapter and plugged it back to the TB4 port of the Element hub. It remained in extended screen mode. No problem working on the entire day.

This morning when I turned on the Mini, both screens were in mirroring mode again. I had to manually go to the settings to switch to the extended screen mode.

What is causing the two issues I mentioned? What is the best way to prevent these issues from happening again?
Lunar has a Stop Mirroring shortcut that uses a hidden macOS API to move all screens to extended mode, can you try it and see if it fixes your issue?

1680618058118.png


If it doesn't, then the problem is most likely hardware related. Mirror mode is usually the default for projectors, and it is possible that the hub reports some unusual info making the Mac detect the screen as a projector.

You can check that for yourself using Lunar's CLI. Install the CLI using:

Bash:
/Applications/Lunar.app/Contents/MacOS/Lunar install-cli

Then run the following to get some info on what the system detects for the monitors:

Bash:
lunar displays --panel-data | egrep '\tName:|isProjector:|isForcedToMirror:'

You should see something similar to:

Swift:
    Name:                              LG Ultra HD
            isForcedToMirror:                  false
            isProjector:                       false
    Name:                              Crestron
            isForcedToMirror:                  true
            isProjector:                       true
 
  • Like
Reactions: hajime and Meteor_
Thanks. I returned the machine as it has several other issues.

For the issues mentioned in this thread, are they caused by MacOS, Silicon Mac or specific models? I got three Mini (M2, M2 Pro) and they all have such display issues. I have been using the same dual displays with a PC for a year without any such issue. What is wrong with Apple?
 
The issue is mainly caused by the monitors not having uniquely identifiable serial data, causing the OS to not be able to know which display is left positioned and which is right positioned after a disconnect/reconnect cycle.

On PC you might have used different ports (e.g. one HDMI and one DP, that fixes the issue on MacBooks too) or a graphic card that has position aware ports. The Thunderbolt 4 ports on the MacBooks and on newer PC laptops don't have a way to say "ok, the monitor that was connected to the left USB-C port is positioned to the left, and after reconnect, the monitor hasn't changed ports".

There's nothing wrong with Apple. This is the ugly state of monitor firmware, where vendors can just write a real serial number in the firmware and not have this problem in the first place, but for some reason they don't.
 
Since you asked - how about for the sake of your own well-being?

Apple will eventually fix this problem. What matters is what everyone affected is going to do in the meanwhile.

Sure, you (the generic you) can keep reconfiguring displays manually and being angry that Apple hasn't fixed it yet, but that's just going to make you (the generic you) miserable and less productive. What if the fix takes a year to materialize? What if it comes in the form of a hardware revision rather than a software update?

I'd rather use a third-party workaround than let something like this eat at me.

Over a year and this problem still has not been fixed.
 
The issue is mainly caused by the monitors not having uniquely identifiable serial data, causing the OS to not be able to know which display is left positioned and which is right positioned after a disconnect/reconnect cycle.

On PC you might have used different ports (e.g. one HDMI and one DP, that fixes the issue on MacBooks too) or a graphic card that has position aware ports. The Thunderbolt 4 ports on the MacBooks and on newer PC laptops don't have a way to say "ok, the monitor that was connected to the left USB-C port is positioned to the left, and after reconnect, the monitor hasn't changed ports".

There's nothing wrong with Apple. This is the ugly state of monitor firmware, where vendors can just write a real serial number in the firmware and not have this problem in the first place, but for some reason they don't

So if I buy a M2 Pro or M2 Max MacBook Pro 16" 2023, I need to buy a dock which has a DP port to avoid the issues discussed in this thread?

Do you mean if I give up on Apple and buy a Windows laptop with only TB4 ports, I will 100% have the issues too? I am using two displays with HDMI port only.
 
Last edited:
So if I buy a M2 Pro or M2 Max MacBook Pro 16" 2023, I need to buy a dock which has a DP port to avoid the issues discussed in this thread?

Do you mean if I give up on Apple and buy a Windows laptop with only TB4 ports, I will 100% have the issues too? I am using two displays with HDMI port only.
The M2 Pro and M2 Max MacBooks have an integrated HDMI port, so you don't need buy any hub for that. You can have a DP or TB connection by using one of the USB-C ports, and a HDMI connection by using the HDMI port. In this way, the connection byte of the EDID UUID will differ and the monitors can be differentiated.

On PC things are way too complicated to say anything for sure. With Apple you have the same M1/M2 GPU across millions of devices, so it's easy to gather feedback on what is not working. But on PC, each laptop has its own GPU vendor (NVidia, AMD, Intel) with its own GPU version with its own firmware and port arrangement.

Over decades of experience, older GPU vendors have also implemented workarounds for specific monitors to get more identifiable data by doing heuristics. This is not at all according to spec and should not be needed, but Apple will have to do the same in the next few years since monitor vendors seem to keep their bad practices.

So I can't say that you'll 100% have the same issues on PC, but there are high chances because of the firmware limitations.
 
  • Like
Reactions: wegster
The issue is mainly caused by the monitors not having uniquely identifiable serial data, causing the OS to not be able to know which display is left positioned and which is right positioned after a disconnect/reconnect cycle.

On PC you might have used different ports (e.g. one HDMI and one DP, that fixes the issue on MacBooks too) or a graphic card that has position aware ports. The Thunderbolt 4 ports on the MacBooks and on newer PC laptops don't have a way to say "ok, the monitor that was connected to the left USB-C port is positioned to the left, and after reconnect, the monitor hasn't changed ports".

There's nothing wrong with Apple. This is the ugly state of monitor firmware, where vendors can just write a real serial number in the firmware and not have this problem in the first place, but for some reason they don't.
How can you say this has nothing to do with Apple. When third party developers have produced software solutions?

Yet Apple still continues to ignore it.
 
The M2 Pro and M2 Max MacBooks have an integrated HDMI port, so you don't need buy any hub for that. You can have a DP or TB connection by using one of the USB-C ports, and a HDMI connection by using the HDMI port. In this way, the connection byte of the EDID UUID will differ and the monitors can be differentiated.

On PC things are way too complicated to say anything for sure. With Apple you have the same M1/M2 GPU across millions of devices, so it's easy to gather feedback on what is not working. But on PC, each laptop has its own GPU vendor (NVidia, AMD, Intel) with its own GPU version with its own firmware and port arrangement.

Over decades of experience, older GPU vendors have also implemented workarounds for specific monitors to get more identifiable data by doing heuristics. This is not at all according to spec and should not be needed, but Apple will have to do the same in the next few years since monitor vendors seem to keep their bad practices.

So I can't say that you'll 100% have the same issues on PC, but there are high chances because of the firmware limitations.
Even using multiple Apple Studio Displays in the same configuration exhibits issues with display arrangement.

In which case both hardware and software issues causing it lie 100% with Apple.
 
  • Like
Reactions: Basic75
How can you say this has nothing to do with Apple. When third party developers have produced software solutions?

Yet Apple still continues to ignore it.
I'm only talking about what I know from my 5 year experience of developing Lunar, no need to be confrontative. I don't have any incentive to praise Apple or lie about their problems.

Can you point me to one of those software solutions? I have tried for years to solve this problem inside Lunar and I found it impossible with all the reverse enginnering I could do. The only solution that would have been working was rewriting the EDID as I have written in my EDID article but that is blocked by 99% of the monitor chips.

I'd love to get a look at something that's already solved this!
 
  • Like
Reactions: wegster
I'm only talking about what I know from my 5 year experience of developing Lunar, no need to be confrontative. I don't have any incentive to praise Apple or lie about their problems.

Can you point me to one of those software solutions? I have tried for years to solve this problem inside Lunar and I found it impossible with all the reverse enginnering I could do. The only solution that would have been working was rewriting the EDID as I have written in my EDID article but that is blocked by 99% of the monitor chips.

I'd love to get a look at something that's already solved this!
So are you saying that Lunar as paid software cannot help or resolve the issue of display arrangements changing?
 
No it can't unfortunately. No monitor controlling app that I know of can do that. I worked closely with MonitorControl and BetterDisplay devs, and also watched the development of displayplacer over the last year: they are all limited by the fact that the system stores arrangement based on the EDID UUID of the monitors.

Lunar only has workarounds like this shortcut (for 3+ monitors) and this shortcut (for 2 monitors) which allows you to re-arrange the monitors fast with a hotkey, when the swapping-around problem inevitably happens.

macOS can alleviate the issue in the future, by testing hundreds of monitor models and putting in thousands of developer hours into finding workarounds for each specific monitor model. The "simplest" one which would be allowing the user to override the EDID before the screen configuration is loaded, as right now it happens after.

Sounds simple, but is actually hard in practice because Apple Silicon has a special chip called a Display Coprocessor (DCP, one per monitor input) which is the one that makes fast connections and fast screen config switching possible. Apple devs would need to coordinate CPU and DCP to allow this EDID override to happen that early in the connection pipeline.
 
  • Like
Reactions: lasyos
On PC you might have used different ports (e.g. one HDMI and one DP, that fixes the issue on MacBooks too) or a graphic card that has position aware ports. The Thunderbolt 4 ports on the MacBooks and on newer PC laptops don't have a way to say "ok, the monitor that was connected to the left USB-C port is positioned to the left, and after reconnect, the monitor hasn't changed ports".
You're saying that Apple, in the kernel, doesn't know which port a display is connected to?
 
You're saying that Apple, in the kernel, doesn't know which port a display is connected to?
No I'm not saying that. At the time of connection it knows that Left Monitor is connected to the left side top USB-C, and Right Monitor is connected to the left side bottom USB-C.

The problem happens after disconnection and reconnection. There's nothing guaranteeing that the user hasn't switched ports (e.g. Left on bottom USB-C, Right on top USB-C), so settings can't be stored by port ID. The only sane logic is to store by the monitor UUID, which in the case of this issue, is the same for both monitors and the previous config gets loaded in the order of the monitors appearing.

The ports problem gets even worse when USB-C hubs are included which have their own ordering and ID reporting, so it's not something macOS could rely on.
 
  • Like
Reactions: wegster
There's nothing guaranteeing that the user hasn't switched ports (e.g. Left on bottom USB-C, Right on top USB-C), so settings can't be stored by port ID.
If the port and the type of display are the same it should be a safe assumption that nothing has changed. That would be a heck of a lot better than the random lottery we have now.
 
  • Like
Reactions: lasyos
If the port and the type of display are the same it should be a safe assumption that nothing has changed. That would be a heck of a lot better than the random lottery we have now.
Unfortunately "should" is not the same as "guaranteed", and devs usually code around guarantees. Apple has millions of users and they have to make the software work best for the largest group of users.

I do the same with Lunar, there are things that don't work well for a small number of people because I chose to implement it to work in a way that suits another larger group of people. I also try to add settings toggles that can change that behaviour for people that need it, but that approach already made Lunar so complex that people are steering away from it, so it's hurting both me and the users. Sane defaults are better.

But still, looks like there's something that I didn't make clear enough. After standby happens, the monitors disconnect almost like if the cable was removed (only power may remain). There still wouldn't be any way to know if the port and the monitors are the same after waking up the system.
 
The M2 Pro and M2 Max MacBooks have an integrated HDMI port, so you don't need buy any hub for that. You can have a DP or TB connection by using one of the USB-C ports, and a HDMI connection by using the HDMI port. In this way, the connection byte of the EDID UUID will differ and the monitors can be differentiated.

On PC things are way too complicated to say anything for sure. With Apple you have the same M1/M2 GPU across millions of devices, so it's easy to gather feedback on what is not working. But on PC, each laptop has its own GPU vendor (NVidia, AMD, Intel) with its own GPU version with its own firmware and port arrangement.

Over decades of experience, older GPU vendors have also implemented workarounds for specific monitors to get more identifiable data by doing heuristics. This is not at all according to spec and should not be needed, but Apple will have to do the same in the next few years since monitor vendors seem to keep their bad practices.

So I can't say that you'll 100% have the same issues on PC, but there are high chances because of the firmware limitations.
On Mini with M2 or M2 Pro, I used the HDMI port for one display and a USB to HDMI adapter for the other. Yet, I have the issues.
 
On Mini with M2 or M2 Pro, I used the HDMI port for one display and a USB to HDMI adapter for the other. Yet, I have the issues.
USB to HDMI adapter is still HDMI from the macOS perspective. What matters is to have one monitor output a HDMI signal and the other a DP one. In your case both monitors output HDMI hence the problem.
 
USB to HDMI adapter is still HDMI from the macOS perspective. What matters is to have one monitor output a HDMI signal and the other a DP one. In your case both monitors output HDMI hence the problem.
Thanks, what suggestions do you have? I am using TVs as monitors. There are only HDMI ports on the TVs.
 
Thanks, what suggestions do you have? I am using TVs as monitors. There are only HDMI ports on the TVs.
In that case I don't think there's any way to make macOS differentiate them, from macOS. You can bind Lunar's Swap Monitors shortcut to something like Control-Command-S and when the problem happens, just press the hotkey and you're back to the correct arrangement.

Another way would be if you could find the TVs hidden service menu, and see if it has any way to change EDID data (either by changing the year/week of manufacture directly from the service menu, or by enabling EDID rewriting).
 
Hey,
I had this monitor swapping problem for over 1 1/2 years and it bothered me quite a lot. I use my M1 Max 16 Pro with 3 Eve/Dough 4k 144hz Monitors all connected via USB C. There is also a windows machine connected to all 3 monitors with a RTX 3090 (no problem with windows). These monitors are not from a big company and still got a lot of bugs so I blamed them for quite a while cause of this problem. I noticed quite early that the monitors EDIDs gave me all same "SerialNumber" only the “AlphanumericSerialNumber” is different. I did spend like 40 hours in total to find a solution for this problem. I went to the genius bar, read through many forums and also talked to the developers of these monitors. Nobody has been able to help me.

Finally, 100% sure that the macOS 13.3 updated fixed the swapping issue for me. Still the monitors sometimes forget that HDR or VRR was enabled but no swapping issues for one week now. Apple must have changed something in this update.
 
  • Like
Reactions: Basic75 and hajime
Hey,
I had this monitor swapping problem for over 1 1/2 years and it bothered me quite a lot. I use my M1 Max 16 Pro with 3 Eve/Dough 4k 144hz Monitors all connected via USB C. There is also a windows machine connected to all 3 monitors with a RTX 3090 (no problem with windows). These monitors are not from a big company and still got a lot of bugs so I blamed them for quite a while cause of this problem. I noticed quite early that the monitors EDIDs gave me all same "SerialNumber" only the “AlphanumericSerialNumber” is different. I did spend like 40 hours in total to find a solution for this problem. I went to the genius bar, read through many forums and also talked to the developers of these monitors. Nobody has been able to help me.

Finally, 100% sure that the macOS 13.3 updated fixed the swapping issue for me. Still the monitors sometimes forget that HDR or VRR was enabled but no swapping issues for one week now. Apple must have changed something in this update.

I would be very unhappy spending that much money on a M1 Max 16 MacBook Pro and have such issue. Please keep us posted if swapping happens again.
 
  • Like
Reactions: Basic75
No it can't unfortunately. No monitor controlling app that I know of can do that. I worked closely with MonitorControl and BetterDisplay devs, and also watched the development of displayplacer over the last year: they are all limited by the fact that the system stores arrangement based on the EDID UUID of the monitors.

Lunar only has workarounds like this shortcut (for 3+ monitors) and this shortcut (for 2 monitors) which allows you to re-arrange the monitors fast with a hotkey, when the swapping-around problem inevitably happens.

macOS can alleviate the issue in the future, by testing hundreds of monitor models and putting in thousands of developer hours into finding workarounds for each specific monitor model. The "simplest" one which would be allowing the user to override the EDID before the screen configuration is loaded, as right now it happens after.

Sounds simple, but is actually hard in practice because Apple Silicon has a special chip called a Display Coprocessor (DCP, one per monitor input) which is the one that makes fast connections and fast screen config switching possible. Apple devs would need to coordinate CPU and DCP to allow this EDID override to happen that early in the connection pipeline.

There definitely seems to be a bug or workaround lost in Monterey. Actually, I think this may have started in Big Sur or Ventura.

This problem did not happen on earlier versions of Mac OS. I had a 2019 iMac with 2 external Samsung U28E590D monitors that always stayed in place. Same with previous iMac 2015. When I upgraded MacOS the monitors would come up randomly swapped. What changed?

I now have a Mac Studio M1 Max Monterey that has the same issue with the 2 Samsung 4k monitors.

I purchased 3 HP x27q monitors and they have the same issues.

Definitely related to MacOS versions.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.