Scroll to navigation

DDCCONTROL(1) General Commands Manual DDCCONTROL(1)

NAME

ddccontrol - A utility to control monitor parameters via software

SYNOPSIS

ddccontrol -p             [-cdfsvS] [-b datadir] [-r ctrl [-w value |-W value |-t value1,value2]]
ddccontrol dev:/dev/i2c-N [-cdfsvS] [-b datadir] [--monitor-file PNPID.xml] [-r ctrl [-w value |-W value |-t value1,value2]]
DDCCONTROL_NO_DAEMON=1 ddccontrol --monitor-file PNPID.xml [selector] [options]

DESCRIPTION

This manual page documents briefly the ddccontrol command.

ddccontrol is an open source utility which allows controlling monitor parameters via software. It communicates with monitors through userspace I2C using /dev/i2c-* devices. Legacy direct PCI memory access and AMD ADL backends have been removed, and USB-connected DDC/CI displays are not supported yet.

OPTIONS

A summary of options is included below.

a device specifier, for example: dev:/dev/i2c-0, or a monitor selector string (exact match against the PnP ID, the monitor name shown by -p (may include the PnP ID in brackets), or the database model name). Use selector to select all matching (DDC/CI-supported) monitors and selector/N (for example SAM083C/0) to select one match by zero-based index.
probe /dev/i2c-* devices to find monitor buses
query capability
query ctrls 0 - 255, except engineering/vendor-specific controls 0xe0 - 0xff unless -f is also used
query ctrl
value to write to ctrl
relatively change ctrl value (+/-)
toggle ctrl value between value1 and value2 (defaults to value1 if current value is neither)
force (avoid validity checks and include engineering/vendor-specific controls 0xe0 - 0xff in -d output)
ask the monitor to save current settings (if supported)
suppress unsupported-monitor fallback warning
verbosity (specify more to increase)
ddccontrol-db directory (if other than /usr/share/ddccontrol-db)
Use a local monitor definition for the matching PnP ID during this run. Requires DDCCONTROL_NO_DAEMON=1 and permission to access /dev/i2c-* directly. The file must be named after its PnP ID, for example DEL1234.xml; relative and absolute paths are accepted. When no device or selector is given, select all connected, DDC/CI-supported monitors with that PnP ID. To select one of several identical monitors, provide an indexed selector such as DEL1234/0. An explicitly selected monitor must match the file's PnP ID. This option cannot be combined with -p.
The installed database (or the directory selected with -b) still supplies options.xml and any included monitor definitions. The local file is read for this run only; relaunch after editing it. No database files are installed or changed, and no service restart is needed.
Load saved control values from a settings profile. This is distinct from a monitor definition loaded with --monitor-file.

EXAMPLES

Test a generated monitor definition without installing it or restarting the daemon:

DDCCONTROL_NO_DAEMON=1 ddccontrol --monitor-file ./DEL1234.xml

Read brightness using the local definition:

DDCCONTROL_NO_DAEMON=1 ddccontrol --monitor-file ./DEL1234.xml -r 0x10

Test the definition on a specific matching monitor:

DDCCONTROL_NO_DAEMON=1 ddccontrol --monitor-file ./DEL1234.xml dev:/dev/i2c-4

If needed for I2C permissions, prefix the command with sudo env.

ENVIRONMENT

When set to a non-empty value, ddccontrol bypasses the D-Bus daemon and accesses /dev/i2c-* devices directly. This can be useful for testing, debugging, or working around a daemon startup or connection problem.

SEE ALSO

The program is documented fully in
/usr/share/doc/ddccontrol/html/index.html

The project homepage: https://github.com/ddccontrol/ddccontrol

AUTHOR

ddccontrol was written by Oleg I. Vdovikin and Nicolas Boichat.
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
Copyright 2004-2026 DDCcontrol authors and contributors (see AUTHORS and CONTRIBUTORS)

This manual page was written by Roberto C. Sanchez <roberto@connexer.com>.

September 22, 2026