Project ddccontrol-db contains database of monitor descriptors, which are used by ddccontrol and gddccontrol utilities to control monitor parameters using DDC/CI protocol.
The most convenient way to install ddccontrol-db is to use packages from official distribution repositories.
Manual installation is more complicated, but contains latest monitor profiles.
On Ubuntu based distrubtions ddccontrol-db, along with utilities, can be installed using apt:
sudo apt install ddccontrol ddccontrol-db gddccontrolInstructions for other distributions will be prepared later.
Release archives contain the generated database and compiled translations. On
Ubuntu, only make is needed to install one:
sudo apt install makeBuilding directly from a Git checkout also requires GNU gettext to compile the
translations and ddccontrol-dbgen to generate CBOR:
sudo apt install gettext makeObtain the generator using the producer instructions.
Set DDCDBGEN=/absolute/path/to/ddccontrol-dbgen when running ./configure if
the executable is outside PATH; the selected path is saved for make.
Builds and archive installations use a SHA-256 utility (sha256sum, sha256
or shasum) to detect changed sources, including edits that preserve timestamps.
XML remains the maintained source and is installed alongside a single uncompressed
ddccontrol-db.cbor and a snapshot manifest. Older programs continue to use XML.
The CBOR v1 contract is a review candidate; this change does not publish a
release or claim complete MCCS coverage. See CBOR distribution.
The handwritten Makefile is tested with both GNU Make and BSD bmake.
The optional make check-controls target runs the list-control checks and their
regression tests. It requires Perl and XML::Parser; on Ubuntu, install these
with sudo apt install perl libxml-parser-perl. GitHub CI runs this target
explicitly. The standard make check target does not require Perl.
Latest repository can be cloned and built by:
git clone https://github.com/ddccontrol/ddccontrol-db.git
cd ddccontrol-db
./configure --prefix=/usr
makeFinally, the build can be installed using:
sudo make installPackagers can stage an installation with DESTDIR, for example:
make install DESTDIR="$pkgdir"See INSTALL for all supported installation variables and
maintainer targets.
Monitor database is used indirectly with ddccontrol and gddccontrol utilities.
gddccontrol is a graphical utility for monitor configuration. It is called Monitor Settings in list of applications.
Currently, root privileges are required to control monitor parameters, therefore the launcher automatically asks for a password.
Utility can launched directly from commandline:
sudo gddccontrolddccontrol allows monitor configuration directly from commandline. To probe I2C devices to find monitor buses use:
sudo ddccontrol -pTo read value of control 0x10 (brightness on VESA compliant monitors) for device dev:/dev/i2c-4:
sudo ddccontrol -r 0x10 dev:/dev/i2c-4To set value of control 0x10 (brightness on VESA compliant monitors) to 75 for device dev:/dev/i2c-4:
sudo ddccontrol -r 0x10 -w 75 dev:/dev/i2c-4See ddccontrol -h for more information.
See doc/how-to-add-a-monitor.md for a hands-on introduction on how to add a monitor.
The CBOR producer and validation workflow uses ddccontrol-dbgen from
the ddccontrol repository. See building and using the producer
for pinned CI builds, local generation and offline packaging. Unmodified release
archives install without Rust or this executable.
The project is licensed under GNU General Public License v2.0 license. See COPYING for details.