Linux monitor control

DDCcontrol

Control brightness, contrast, color levels and other monitor settings from the command line or a GTK interface.

Current releases

Program and profiles, kept in sync

DDCcontrol

3.4.0

3.4.0 (2026-09-28)

Notes for distribution packagers

  • Building now requires Rust and Cargo 1.77 or newer.
  • New direct Rust dependencies are ciborium 0.2.2 and sha2 0.10. Existing dependencies include encoding_rs 0.8, libc 0.2, and roxmltree 0.20. Offline builds must provide these crates through distribution packages or use the vendored source archive.
  • make install now installs the new ddccontrol-scanmonitor executable and its ddccontrol-scanmonitor(1) manual page. These should normally be included in the main ddccontrol package. The scanner uses the existing ddccontrol-db data and accesses /dev/i2c-* directly; it has no D-Bus dependency.
  • ddccontrol-dbgen is a new build-time database producer and validator. It is not installed by make install and is not required on end-user systems. The release publishes statically linked binaries for x86_64-unknown-linux-musl and aarch64-unknown-linux-musl, with separate SHA-256 checksum files.
  • Database packagers can use ddccontrol-dbgen to generate ddccontrol-db.cbor and ddccontrol-db.snapshot. These files must be generated from the same XML source snapshot and installed together. XML-only database packages remain supported.
  • There is no libddccontrol SONAME bump compared with 3.3.0 and no new explicit shared-library runtime dependency. Builds remain supported on Debian architectures including ppc64el, riscv64, and s390x.

Features

  • add scan monitors CLI and preview local XML definitions (#329) (e22b769)
  • db: add shared CBOR producer and static release artifacts (#338) (fc87c94)

Bug Fixes

Documentation

Tests

View release and assets
Monitor database

20260928

What's Changed

  • docs(db): define the CBOR contract and reference fixtures by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/440
  • build(db): validate CBOR with the pinned Rust producer by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/441
  • build(db): distribute CBOR alongside XML and translations by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/439
  • feat: add conservative Sceptre C275B-1858RN support by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/447
  • feat: add Lenovo ThinkVision P40w-20 support by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/450
  • feat: add conservative AOC Q27G42XE monitor profile by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/449
  • feat: add Acer EI342CKR monitor support by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/448
  • build(db): use ddccontrol 3.4.0 dbgen by @larstobi in https://github.com/ddccontrol/ddccontrol-db/pull/453

Full Changelog: https://github.com/ddccontrol/ddccontrol-db/compare/20260922...20260928

View release and assets

Two interfaces

Use the desktop app or script it

gddccontrol provides a GTK interface. ddccontrol exposes the same monitor controls for terminals, scripts and automation.

Shell
$ sudo ddccontrol -p
$ sudo ddccontrol -r 0x10 \
    -w 75 dev:/dev/i2c-4

474

monitor and reusable profiles in database release 20260928

Monitor knowledge belongs in the database

Search the generated profile index, inspect the exact XML source, or contribute support for another display.

Browse monitor profiles