This really ought to be built into every OS. From what I've read, the catch is that DDC implementations are often very buggy and can cause problems, so it would be risky to do this out of the box.
This really ought to be built into every OS. From what I've read, the catch is that DDC implementations are often very buggy and can cause problems, so it would be risky to do this out of the box.
P.S. Not a user of NVidia now, might be a fake memory.
https://lore.kernel.org/all/7f2d88de-60c5-e2ff-9b22-acba35cf...
My Samsung, for example, supports DDC/CI for HDMI but not DisplayPort, so I have to choose between software control and a refresh rate higher than 60Hz. It also only supports a small subset of commands and doesn’t work if the device sending the command isn’t the active display input.
I wanted to build a small utility that switches from my work PC to home PC automatically after 5pm, but all those compromises make it a very tedious process.
It's not curated or anything like that because DDC can be affected by more than just the monitor itself (adapters/hubs/docks/GPU etc.) but you can run some statistics to see what specific monitors support DDC for most people.
For example, here's a query you can run to find the monitors that are most likely to support DDC:
SELECT
regexp_replace("name", ' \(\d+\)$', '') AS name,
count(ddc) working_ddc_count,
connection,
"DisplayProductID",
"isHiDPI"
FROM
displays
WHERE
ddc
AND NOT "kCGDisplayIsVirtualDevice"
AND NOT "isAirPlayDisplay"
AND NOT "isTV"
AND "DisplayProductID" != 0
AND "DisplayVendorID" NOT IN(7789, 1552) -- Filter out LGs as they don't have a useful name and Apple displays
AND name NOT LIKE 'Unknown Display%' -- Filter out those in a semi-connected state
GROUP BY
name,
"DisplayProductID",
connection,
"isHiDPI"
ORDER BY
working_ddc_count DESC;