ddcutil and ddcui
Announcements
17 February 2025
ddcutil 2.2.0 is a major new release,
Most significantly, detecting and reporting display connection and disconnection has been reworked and enhanced, making libddcutil more useful to applications such as KDE PowerDevil, vdu_controls, and ddcutil-service.
Other enhancements include support for DisplayLink devices using driver evince. more consistent and extensive use of the system log, additional facilities for remote problem diagnosis, and changes in building, installation, and packaging. And, of course, there are many bug fixes.
The libddcutil API is backwardly compatible with that in release 2.1.4. It contains some minor changes and additional APIs, particularly for display change detection
ddcui 0.6.0 has been modified use the enhanced libddcutil API for display change detection, automatically reflecting display connection and disconnection. It also contains a handful of bug fixes.
For details about the changes and bug fixes, see ddccutil 2.2.0 Release Notes, Shared Library Changes for Release 2.2.0, and ddcui Release Notes. Changes are also summarized in the CHANGELOG.md files in the respective source trees.
Michael Hamilton, developer of VDU Controls, has once again provided invaluable assistance in the development of this release, particularly in the design and implementation of display status change detection. His project ddcutil-service packages libddcutil as a D-Bus service.
Prior announcements can be found here.
Introduction
ddcutil is a Linux program for managing monitor settings, such as brightness, color levels, and input source. Generally speaking, any setting that can be changed by pressing buttons on the monitor can be modified by ddcutil.
ddcutil primarily uses DDC/CI (Display Data Channel Command Interface) to communicate with monitors implementing MCCS (Monitor Control Command Set) over I2C. Normally, the video driver for the monitor exposes the I2C channel as devices named /dev/i2c-n. Alternatively, there is support for monitors (such as Eizo ColorEdge displays) that implement MCCS using a USB connection. See USB Connected Monitors.
A particular use case for ddcutil, and the one that inspired its development, is as part of color profile management. Monitor calibration is relative to the monitor color settings currently in effect, e.g. red gain. ddcutil allows color related settings to be saved at the time a monitor is calibrated, and then restored when the calibration is applied.
Restrictions:
- ddcutil does not support laptop displays, which are controlled using a special API, not I2C.
- Generally speaking, ddcutil can be built in a virtual machine, but will not run in a VM. This is because the virtual video drivers do not implement I2C. However, if the VM is connected to a separate video card and is running a non-virtualized driver for the card in passthru mode, then ddcutil will work.
- Nvidia's proprietary video driver may require special configuration. See Special Nvidia Driver Settings.
- Reading and writing Table type features is implemented but untested. See Table Features
ddcutil is released under the GNU Public License, V2 (GPLV2). The source is hosted on Github.
General support questions are best directed to the issue tracker on Github. Use of that forum allows everyone to benefit from individual questions and ideas. For details, see Technical Support.
ddcui
ddcui is a graphical user interface to ddcutil, built using Qt. For further information, see ddcui Overview.
ddcui is released under the GNU Public License, V2 (GPLV2). The source is hosted on Github.
ddcui questions should also be directed the to the ddcutil issue tracker on Github.
Topics
Using ddcutil:
Commands and Options:
Installation and Configuration:
- Post-Installation Checklist
- Install ddcutil From Prebuilt Packages
- Building From Source
- Configuration and Installation Diagnostics
Other:
- Frequently Asked Questions
- Technical Support
- Releases
- Release Notes
- Announcement History
- Virtual Machines
- Comparison with ddccontrol
- Notes on Specific Monitors
- DDC Null Response
- APIs
- Articles about ddcutil
- References
- Acknowledgements
Packaging Status In Distribution Repositories
For packages maintained by ddcutil, see Installing ddcutil and ddcui from Prebuilt Packages
Those responsible for maintaining ddcutil related packages in Linux distributions should see Notes for Linux Distribution Maintainers.
ddcutil Packaging Status
ddcui Packaging Status
Author
Sanford Rockowitz rockowitz@minsoft.com