Repository navigation
Name spdisplays_display rows from their EDID and flag the ones with none - #129
Open
rodchristiansen wants to merge 2 commits into
Open
rodchristiansen wants to merge 2 commits into
rodchristiansen wants to merge 2 commits into
Conversation
…ameless EDID #3907 A row system_profiler named but read no EDID for, such as an AirPlay target, now keeps its name and is only flagged unidentified. The spare EDID an unnamed row adopts must be on an active link and must carry a name, so a flagged row never holds another display's serial, and the one-row guard counts every external row without an EDID.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
RegistryDisplay.resolveUnnamed(_:from:)inEDIDDisplay.swift, called from the hardware module right after the EDID serial join.spdisplays_display(or left empty), or whose vendor id is756e6b6e(ASCII "unkn", meaning macOS read no EDID).enrichdoes: vendor, product and header serial, or a unique vendor and product. It takes the registryProductName, or failing that the EDID name descriptor.unidentified: trueand the nameUnidentified Display, or with its recovered name andunidentified: false. A flagged row never carries another display's serial.unidentified: true. Rows with a real name and a real vendor id are unchanged and get no key.Why
KVMs, adapters, virtual displays and AirPlay targets reach inventory named
spdisplays_display, a localization key rather than a name. Consumers had to recognise that string to skip them. The explicit flag lets them skip these rows by rule.Testing
swift test: all suites pass.EDIDDisplayTestscases cover:Before merging
spdisplays_displayname should also honourunidentified. A real-vendor row that cannot be named is now calledUnidentified Display, not the raw key, and the old name check misses it. Unknown-vendor rows keep vendor id756e6b6e, so a vendor-id check still catches those.buildDisplays. Whichever lands second needs a one-line rebase.