[GH-ISSUE #961] Add option to generally use display serial number instead of CGDirectDisplayID for preferences #584

Closed
opened 2026-05-05 06:18:18 -06:00 by gitea-mirror · 2 comments
Owner

Originally created by @waydabber on GitHub (Feb 23, 2022).
Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/961

Discussed in https://github.com/MonitorControl/MonitorControl/discussions/960

With Apple Silicon CGDirectDisplayID is not as unique as it was with Intel but a simple number that is related to the connection's location in the IO registry. The problem is that MonitorControl stores preferences attached to this ID which can cause unexpected things especially when two displays with very different characteristics are being connected to the same port at successive occasions. There should be an option to use display serial number for associating preferences instead of CGDirectDisplayID.

Originally created by @waydabber on GitHub (Feb 23, 2022). Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/961 ### Discussed in https://github.com/MonitorControl/MonitorControl/discussions/960 With Apple Silicon `CGDirectDisplayID` is not as unique as it was with Intel but a simple number that is related to the connection's location in the IO registry. The problem is that MonitorControl stores preferences attached to this ID which can cause unexpected things especially when two displays with very different characteristics are being connected to the same port at successive occasions. There should be an option to use display serial number for associating preferences instead of `CGDirectDisplayID`.
gitea-mirror 2026-05-05 06:18:18 -06:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@waydabber commented on GitHub (Feb 23, 2022):

Also see this one - https://github.com/MonitorControl/MonitorControl/issues/792

<!-- gh-comment-id:1049052413 --> @waydabber commented on GitHub (Feb 23, 2022): Also see this one - https://github.com/MonitorControl/MonitorControl/issues/792
Author
Owner

@waydabber commented on GitHub (Feb 24, 2022):

All right... I was wrong, I checked the code again and realized that I actually already changed how preferences ID works in MC, since 4.0.0 the preferences ID also contains data from display name, vendor and model number as a composite ID and this is what is tied to a specific display's stored settings (the ID should be something like (LGUltraHD778923305@2) where only the @2 is the port/ID part and all the stuff before that contains other things that it makes the display unique). :] This means it should not get confused between the two displays, that was a problem in 3.0.0 only.

I'll close this one.

<!-- gh-comment-id:1050002382 --> @waydabber commented on GitHub (Feb 24, 2022): All right... I was wrong, I checked the code again and realized that I actually already changed how preferences ID works in MC, since 4.0.0 the preferences ID also contains data from display name, vendor and model number as a composite ID and this is what is tied to a specific display's stored settings (the ID should be something like `(LGUltraHD778923305@2)` where only the `@2` is the port/ID part and all the stuff before that contains other things that it makes the display unique). :] This means it should not get confused between the two displays, that was a problem in 3.0.0 only. I'll close this one.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/MonitorControl#584
No description provided.