The Display Data Channel (DDC) is a very useful feature of modern digital displays because it allows the graphics card (and operating system) to communicate with display and control functions (such as brightness and contrast).The biggest negative impact here is Access to this feature is relatively poor in operating systems like MacOS, and you can change it as you like, As [Alin Panaitiu] Recently discovered.
Current display tool DDC2, Which is based on an I2C bus. Nevertheless, few operating systems provide DDC-based function control, such as brightness. [Alin] A popular utility was developed for MacOS that uses an undocumented API to communicate DDC2 with an external display via I2C. Until the new Arm-based Mac system was released and these undocumented APIs changed, that is to say.
Although there are some ways to solve this problem, some utilities use simple software-based overlays to “dim” the display, or use external gamma adjustments through an external Raspberry Pi system connected to HDMI and use Utility, The best way is through DDC2.Eventually a new (undocumented) API that provides access was discovered, and another user named it after [zhuowei] notify [Alin] new IOAVServiceReadI2C
with IOAVServiceWriteI2C
Use the Arm-based MacOS method.
After this, more investigations are needed to determine which devices on the I2C bus are which display in the case of multiple external displays, but in the end everything returns to normal, and hardware-based brightness control is re-added to MacOS users. Minus some obvious hardware issues with HDMI on the M1 Mac Mini and some displays, but who is calculating?
[Heading image: Screenshot of the Lunar app on MacOS. Credit: Alin Panaitiu]