4 ms·
Oh I'm definitely trying this. I currently have kb shortcuts defined for brightness up/down that invoke ddcutil. This really ought to be built into every OS. F
by paol 4y ago
Oh I'm definitely trying this. I currently have kb shortcuts defined for brightness up/down that invoke ddcutil.
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.
- pabs3 4y agoThere is a plan to add DDC to the Linux kernel, so that any desktop can manage external monitors using the same APIs they use to manage internal laptop panels. Hopefully that would mitigate the problems you mention.
- seba_dos1 4y agohttps://gitlab.com/ddcci-driver-linux/ddcci-driver-linux https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux
- davidhi7 4y agoUsing this driver, Powerdevil does not allow you to set values individually per monitor, instead gives you only a single slider. This is absolutely sufficient for single monitor or multi monitor setups with identical models, but in my case I need the option to set it individually since my monitors are all differently bright on 100%.
- pabs3 4y agoSee my comment above, per-display brightness config will need changes to the Linux kernel brightness userspace API.
- pabs3 4y agoYeah. There was an attempt to upstream that driver (by someone not involved in it), and the need for a better userspace API for backlight control got mentioned, so the driver wasn't merged. Probably a better driver will get merged eventually. https://lore.kernel.org/all/7f2d88de-60c5-e2ff-9b22-acba35cfdfb6@redhat.com/ https://lore.kernel.org/all/7f2d88de-60c5-e2ff-9b22-acba35cf...
- mastax 4y agoI bet if windows had supported DDC/CI for the past decade monitors would work with it reliably. (Well, as reliably as any hardware peripheral)
- paol 4y agoYeah, I suspect the reason DDC (and EDID) are so bad is that they're not critical for the monitor to perform its basic function, so there's no "evolutionary pressure" to improve it.
- ChuckNorris89 4y agoWindows has had support for DDC/CI for a long time.
- mastax 4y agoExposed to the user as a brightness control for external monitors? Where?
- ChuckNorris89 4y agoNot exposed in the GUI but has OS support which can be accessed through third party apps.
- wtallis 4y agoIn what sense is it supported? What functionality is exposed to end users?
- tjoff 4y agoAutomatic detection of default and supported resolutions and information about DPI? Or is it not the same?
- wtallis 4y agoDDC is how monitors send EDID information about their capabilities to the computer. DDC/CI adds the ability for the computer to send commands to the monitor for things like brightness and color settings and input selection. So Windows obviously is using plain DDC to offer you the right set of resolution choices, but none of the DDC/CI functionality appears to be exposed to end users, making it effectively unsupported and unused and untested.
- KMnO4 4y agoI’d love a database of monitors with good DDC/CI support. You can’t just assume a good or high end monitor will work as you want it to. 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.
- alin23 4y agoI maintain a database of monitors coming from Lunar users here: https://db.lunar.fyi https://db.lunar.fyi 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;