You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ideally the display IDs used by this module would mirror the IDs listed in display settings for a consistent user experience. Unfortunately I haven't been able to determine the logic they use to set the IDs so I've had to invent my own logic. The logic simply sorts by display adapter and then gives a custom priority number based on the connector type and connection instance number, prioritizing typical "PC" connection types over others. See: https://github.com/MartinGC94/DisplayConfig/blob/main/src/DisplayConfig/API/DisplayConfig.cs#L152
Methods I've tried:
1: The following registry keys seem promising in providing the data but they are not readable by a standard user so it's not a viable solution:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers\Configuration
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers\Connectivity
2: Sorting by the monitor UIDs listed in the device path like: \?\DISPLAY#LGD06B1#4&8bc03bf&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} the order was completely out of wack on all my test systems.
3: Simply going in the order of the paths returned by QueryDisplayConfig. Disabled paths are put after the live paths so disabling or enabling a display would make the ID assignments inconsistent. This is obviously bad.
4: The registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\monitor\Enum is readable but the order doesn't always line up with the settings app.
If someone happens to know the logic and can share it here I would be happy to try and implement it in the module. For now though, the custom priority logic I've come up with seems to get reasonably close on most systems.
The text was updated successfully, but these errors were encountered:
Ideally the display IDs used by this module would mirror the IDs listed in display settings for a consistent user experience. Unfortunately I haven't been able to determine the logic they use to set the IDs so I've had to invent my own logic. The logic simply sorts by display adapter and then gives a custom priority number based on the connector type and connection instance number, prioritizing typical "PC" connection types over others. See: https://github.com/MartinGC94/DisplayConfig/blob/main/src/DisplayConfig/API/DisplayConfig.cs#L152
Methods I've tried:
1: The following registry keys seem promising in providing the data but they are not readable by a standard user so it's not a viable solution:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers\Configuration
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers\Connectivity
2: Sorting by the monitor UIDs listed in the device path like: \?\DISPLAY#LGD06B1#4&8bc03bf&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} the order was completely out of wack on all my test systems.
3: Simply going in the order of the paths returned by
QueryDisplayConfig
. Disabled paths are put after the live paths so disabling or enabling a display would make the ID assignments inconsistent. This is obviously bad.4: The registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\monitor\Enum is readable but the order doesn't always line up with the settings app.
If someone happens to know the logic and can share it here I would be happy to try and implement it in the module. For now though, the custom priority logic I've come up with seems to get reasonably close on most systems.
The text was updated successfully, but these errors were encountered: