[PR #793] [MERGED] Virtual displays now use serial number as preferences ID appendix. #1205

Closed
opened 2026-05-05 07:07:43 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/MonitorControl/MonitorControl/pull/793
Author: @waydabber
Created: 11/16/2021
Status: Merged
Merged: 11/16/2021
Merged by: @waydabber

Base: masterHead: fixes


📝 Commits (7)

  • 8c1be5e Fixing Samsung 28E850 treated as a dummy.
  • a6e0402 Removed OSD lock popup alltogether
  • 23ec024 Fix build number conflict
  • 45c769d Merge remote-tracking branch 'refs/remotes/origin/fixes'
  • 635b998 Virtual displays (Sidecar, DisplayLink etc) now use serial number instead of CGDirectDisplayID for preferences storage appendix.
  • a2b27f8 Merge remote-tracking branch 'refs/remotes/origin/fixes'
  • c81c477 Made display pref id creation look nice.

📊 Changes

6 files changed (+22 additions, -19 deletions)

View changed files

📝 MonitorControl/Info.plist (+1 -1)
📝 MonitorControl/Model/AppleDisplay.swift (+2 -2)
📝 MonitorControl/Model/Display.swift (+13 -11)
📝 MonitorControl/Model/OtherDisplay.swift (+2 -2)
📝 MonitorControl/Support/DisplayManager.swift (+3 -2)
📝 MonitorControlHelper/Info.plist (+1 -1)

📄 Description

There was an issue regarding virtual displays (DisplayLink, Sidecar etc) - the app uses CGDirectDisplayID as a preference ID suffix alongside the display name and vendor/model number. Since on every connect this id is changing for these displays, MonitorControl could not track preferences associated to these displays (+ the preferences store was polluted with dead items as well). This is now fixed, we now use the system generated, permanent serial number as suffix for virtual displays. For real displays we continue to use CGDirectDisplayID as the serial number is often the same for identical displays which causes issues in multi-display configs with similar physical displays.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/MonitorControl/MonitorControl/pull/793 **Author:** [@waydabber](https://github.com/waydabber) **Created:** 11/16/2021 **Status:** ✅ Merged **Merged:** 11/16/2021 **Merged by:** [@waydabber](https://github.com/waydabber) **Base:** `master` ← **Head:** `fixes` --- ### 📝 Commits (7) - [`8c1be5e`](https://github.com/MonitorControl/MonitorControl/commit/8c1be5e34d1d4b036221f503cb017d06a2c1f69e) Fixing Samsung 28E850 treated as a dummy. - [`a6e0402`](https://github.com/MonitorControl/MonitorControl/commit/a6e0402274b210c70af42179ec06745f41f7cd74) Removed OSD lock popup alltogether - [`23ec024`](https://github.com/MonitorControl/MonitorControl/commit/23ec0240fc5cbf440d222a41800d3b525dd6394d) Fix build number conflict - [`45c769d`](https://github.com/MonitorControl/MonitorControl/commit/45c769dbd91270e69a943f006d7b598c315a3e6d) Merge remote-tracking branch 'refs/remotes/origin/fixes' - [`635b998`](https://github.com/MonitorControl/MonitorControl/commit/635b9983e10d718fabf7215d4f1bb82eab0e96c6) Virtual displays (Sidecar, DisplayLink etc) now use serial number instead of CGDirectDisplayID for preferences storage appendix. - [`a2b27f8`](https://github.com/MonitorControl/MonitorControl/commit/a2b27f8bf55fde8dd8c5cd9996705efbadfd1ec7) Merge remote-tracking branch 'refs/remotes/origin/fixes' - [`c81c477`](https://github.com/MonitorControl/MonitorControl/commit/c81c47794fb3e032493b60824f2b9cd56af73941) Made display pref id creation look nice. ### 📊 Changes **6 files changed** (+22 additions, -19 deletions) <details> <summary>View changed files</summary> 📝 `MonitorControl/Info.plist` (+1 -1) 📝 `MonitorControl/Model/AppleDisplay.swift` (+2 -2) 📝 `MonitorControl/Model/Display.swift` (+13 -11) 📝 `MonitorControl/Model/OtherDisplay.swift` (+2 -2) 📝 `MonitorControl/Support/DisplayManager.swift` (+3 -2) 📝 `MonitorControlHelper/Info.plist` (+1 -1) </details> ### 📄 Description There was an issue regarding virtual displays (DisplayLink, Sidecar etc) - the app uses CGDirectDisplayID as a preference ID suffix alongside the display name and vendor/model number. Since on every connect this id is changing for these displays, MonitorControl could not track preferences associated to these displays (+ the preferences store was polluted with dead items as well). This is now fixed, we now use the system generated, permanent serial number as suffix for virtual displays. For real displays we continue to use CGDirectDisplayID as the serial number is often the same for identical displays which causes issues in multi-display configs with similar physical displays. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-05 07:07:43 -06:00
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#1205
No description provided.