Freedom251 › Monitor Control Software
ddcutil

What ddcutil is
ddcutil is a free Linux program for controlling monitor settings such as brightness, color levels, and input source. It communicates through DDC/CI over I²C and supports monitors that implement MCCS over USB. Its commands can find monitors, show their capabilities, read or set VCP feature values, and save or restore color-related settings. The companion ddcui provides a Qt graphical interface with Summary, Capabilities, and Features views; its Features view can change modifiable values. For profile work, dumpvcp saves current settings to a file and loadvcp restores them. Developers can use the C API through libddcutil.so to read and write VCP values and save or restore profile-related features. The software is released under GPL version 2. Setup requires the Linux kernel i2c-dev module, and non-root users need permissions to run it. It does not support laptop displays, and it generally will not run in virtual machines because virtual video drivers do not implement I²C.
Who it suits
ddcutil suits Linux users managing color profiles or other settings on compatible external monitors. Developers can also use its C API for monitor control.
What it does well
- Reads and changes monitor VCP feature values.
- Includes a graphical interface for modifiable settings.
- Saves and restores color-related monitor settings.
- Provides a C API through libddcutil.so.
What to know first
- Does not support laptop displays.
- Generally will not run in virtual machines.
- Requires the Linux i2c-dev module and user permissions.
Limits
Laptop displays are unsupported, and ddcutil generally will not run in virtual machines whose video drivers do not implement I²C. For MCCS over USB, table type features are unsupported; the capabilities command synthesizes its response because the specification has no way to query a capabilities string.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| ddcutil | GNU General Public License, V2 (GPLV2) | Free |
| ddcui | GNU General Public License, V2 (GPLV2); graphical interface for ddcutil | Free |
As ddcutil.com lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the ddcutil website for installation documentation.
- Choose a documented prebuilt package or build from source.
- Install or enable the Linux kernel i2c-dev module.
- Grant permissions if running ddcutil as a non-root user.
- Use ddcutil commands or the ddcui graphical interface to work with monitor settings.
ddcutil is a Linux monitor-control utility for people who want to adjust external displays from commands, a graphical interface, or their own software. Its free price and profile tools are compelling, but support for Linux hardware interfaces—and the absence of laptop-display and general virtual-machine support—narrow its reach.
Overview
ddcutil communicates with compatible monitors through DDC/CI over I²C and supports monitors implementing MCCS over USB. It can detect displays, report capabilities, and read or change VCP values, including brightness, color levels, and input source. That combination suits repeatable adjustments and automation better than casual control of any display: the monitor and connection must support the required interface.
For color workflows, dumpvcp saves current color-related monitor settings to a file and loadvcp restores them. The documentation also describes using ddcui alongside DisplayCal’s monitor-adjustment phase, and accessing the save and restore services from C or C++ programs through the API.
Key features
- Command-line control: Detection, capability reporting, and VCP reads and writes provide a practical base for monitor-management scripts. Input switching is supported, so users can automate more than brightness adjustments.
- Graphical interface: ddcui is a Qt application with Summary, Capabilities, and Features views; the Features view can change values the monitor allows. It offers a visual route to inspection and adjustment without replacing the command-line tools’ value for automation.
- Saved settings: dumpvcp and loadvcp preserve and restore color-related monitor settings. This is particularly useful for users who want repeatable color configurations rather than resetting adjustments manually.
- Programming interface: The shared library libddcutil.so exposes a C API for reading and writing VCP values and saving and restoring profile-related features. Installed headers and sample client programs give developers a starting point for integrating monitor control.
There are meaningful boundaries. Laptop displays use a special API rather than I²C and are not supported; virtual video drivers generally do not implement I²C, so ddcutil generally will not run in a virtual machine. With MCCS over USB, table-type features are unsupported, and the capabilities response is synthesized because the specification provides no way to query a capabilities string. Table-feature reads and writes are implemented, but have not been tested due to the lack of a monitor for testing.
Pricing
ddcutil and its ddcui graphical interface are free: each is priced at $0 under the GNU General Public License, version 2. There is no free trial because the software is free rather than trial-based. The license and source availability on GitHub suit users able to install and operate Linux software; there are no paid plans or seat tiers to weigh.
Platforms
ddcutil is for Linux, including API use and self-hosted deployments. Its requirements are more specific than the platform label suggests: it needs the Linux kernel i2c-dev module, and non-root users need permissions to run it. The project documents prebuilt packages and source builds; maintained packages cover some Debian, openSUSE, and Ubuntu releases, with Launchpad and Fedora COPR packages also described. It is included in Arch, Debian, Fedora, Gentoo, Manjaro, openSUSE, and Raspbian.
Who it's for
Choose ddcutil if you use Linux with compatible external monitors and want command-line control, saved color settings, or a C API for monitor-aware software. It is a particularly strong fit for color-profile management and programmatic access. Look elsewhere if your primary need is controlling a laptop’s built-in display, using a virtual machine, or managing monitors from macOS or Windows.
Technical support questions, bug reports, and feature requests go to the project’s GitHub issue tracker. Developer and maintainer Sanford Rockowitz’s documentation provides installation guidance, but users should be prepared to handle Linux module and permission setup.
Pros and cons
- Pros: Free and open source. Both the utility and GUI cost nothing, and GPLv2 licensing allows access to the source.
- Pros: Useful control range. Detection, VCP changes, input switching, and saved color settings support practical external-monitor workflows.
- Pros: Multiple ways to use it. The Qt GUI serves direct adjustment, while command-line tools and a C API support automation and software integration.
- Cons: Linux and hardware prerequisites. The i2c-dev module and user permissions require setup, and monitor compatibility is essential.
- Cons: No laptop display support. Its I²C approach does not work with laptop displays’ special control API.
- Cons: Virtual-machine use is generally unavailable. Virtual video drivers generally lack I²C support.
- Cons: USB and table-feature limits. MCCS-over-USB table features are unsupported, and implemented table-feature access has not been tested.
Alternatives
For a wider set of operating systems, compare Monitor Control Software.
- ASUS DisplayWidget Center is a free option for macOS and Windows, but its free download is compatible only with ASUS monitors.
- Lunar is a macOS freemium alternative with a free version; choose it if you need a macOS option rather than Linux monitor control.
- Twinkle Tray is free for Windows 10 and Windows 11 and supports most laptops and DDC/CI-enabled monitors, making it a better fit for Windows users.
- ClickMonitorDDC is free for personal use on Windows, with no premium features stated.
- MonitorControl is a free macOS option for controlling display brightness, volume, and contrast.
- DeepPurge is a free alternative for Linux, macOS, and Windows.
- DDC-CI Control Bridge is a free alternative for Linux, macOS, Windows, and self-hosted or API use.
- BetterDisplay is a macOS freemium option whose Pro plan costs $21.99, paid once for a perpetual license covering the specified versions and includes at least one year of updates.
Verdict
For Linux users managing compatible external monitors—especially those saving color settings or integrating monitor controls into software—ddcutil is a strong free choice with unusually flexible command-line, GUI, and API access. Its Linux setup requirements and lack of laptop-display or general virtual-machine support are the main reasons to choose a platform-specific alternative instead.
Verdict
ddcutil offers both command-line monitor controls and a graphical interface, with a C API for programmatic use. Its Linux and display compatibility limits matter, particularly for laptop screens and virtual machines.
Questions
How much does ddcutil cost?
The ddcutil and ddcui plans are each listed as free. The software is released under GPL version 2.
Which platforms does it support?
The supported platform is Linux. The documentation says ddcutil is included in Arch, Debian, Fedora, Gentoo, Manjaro, openSUSE, and Raspbian.
Does it have a graphical interface?
Yes. The companion ddcui is a Qt graphical interface with Summary, Capabilities, and Features views.
Is ddcutil open source?
It is released under the GNU General Public License version 2, and its source is hosted on GitHub.
Who develops ddcutil?
The documentation identifies Sanford Rockowitz as its developer and maintainer.
Can it control laptop screens?
No. ddcutil does not support laptop displays, which use a special API rather than I²C.
Facts from ddcutil's own pages
- API
- The C API is exposed through the shared library libddcutil.so and includes functions for reading and writing VCP values and saving and restoring profile related features. · ddcutil.com, 3 Oct 2026
- C API
- The C API is exposed through the shared library libddcutil.so, with installed header files and sample client programs. · ddcutil.com, 4 Oct 2026
- Color profiles
- The dumpvcp and loadvcp commands save and restore color related monitor settings for color profile workflows. · ddcutil.com, 4 Oct 2026
- Display limits
- ddcutil does not support laptop displays, which are controlled through a special API rather than I²C. · ddcutil.com, 3 Oct 2026
- Graphical interface
- ddcui is a Qt graphical interface with summary, capabilities, and features views, and can change modifiable feature values. · ddcutil.com, 4 Oct 2026
- Installation
- The maker documents prebuilt packages and source builds; its project maintained packages include builds for some Debian, openSUSE, and Ubuntu releases, with Launchpad and Fedora COPR packages also described. · ddcutil.com, 3 Oct 2026
- Integration
- The documentation describes running ddcui alongside DisplayCAL's monitor adjustment phase and using the C or C++ API for dump and load services. · ddcutil.com, 4 Oct 2026
- Intended users
- The documentation describes color profile management as a primary use and also presents a C API for programs that need monitor control. · ddcutil.com, 4 Oct 2026
- Laptop display limit
- ddcutil does not support laptop displays because they use a special API rather than I²C. · ddcutil.com, 4 Oct 2026
- License
- ddcutil and ddcui are released under the GNU General Public License, version 2. · ddcutil.com, 4 Oct 2026
- Linux distributions
- The documentation says ddcutil is included in Arch, Debian, Fedora, Gentoo, Manjaro, openSUSE, and Raspbian. · ddcutil.com, 3 Oct 2026
- Maker
- The documentation identifies Sanford Rockowitz as ddcutil’s developer and maintainer. · ddcutil.com, 3 Oct 2026
- Monitor communication
- It primarily communicates with monitors implementing MCCS through DDC/CI over I²C, and also supports some monitors using USB for MCCS. · ddcutil.com, 4 Oct 2026
- Monitor controls
- Its commands can detect monitors, report capabilities, read and set VCP feature values, and save or restore color related settings. · ddcutil.com, 3 Oct 2026
- Platforms
- Prebuilt packages are listed for Linux distributions including Arch, Debian, Fedora, Gentoo, Manjaro, openSUSE, and Raspbian, with source builds available when packages are unavailable. · ddcutil.com, 4 Oct 2026
- Purpose
- ddcutil is a Linux program for managing monitor settings such as brightness, color levels, and input source. · ddcutil.com, 4 Oct 2026
- Settings automation
- Its commands can detect monitors, read and set VCP features, and save or restore monitor settings. · ddcutil.com, 4 Oct 2026
- Setup requirements
- ddcutil requires the Linux kernel i2c-dev module, and permissions must be granted for non-root users to run it. · ddcutil.com, 3 Oct 2026
- Support
- The project directs technical support questions, bug reports, and feature requests to its GitHub issue tracker. · ddcutil.com, 4 Oct 2026
- Table features
- Reading and writing MCCS table type features is implemented but the project says it has not been tested due to lack of a monitor for testing. · ddcutil.com, 4 Oct 2026
- USB limits
- For MCCS over USB, table type features are unsupported and the capabilities command synthesizes a response because the specification has no mechanism to query a capabilities string. · ddcutil.com, 3 Oct 2026
- Virtual machine limit
- The documentation says ddcutil generally will not run in a virtual machine because virtual video drivers do not implement I²C. · ddcutil.com, 4 Oct 2026
Where ddcutil stands on Freedom251
- Monitor Control Software#5 of 24