Skip to content

About

DDC Control Monitor Database

Resources

Stars

136 stars

Watchers

4 watching

Forks

Repository files navigation

CI

DDC/CI control database

Project ddccontrol-db contains database of monitor descriptors, which are used by ddccontrol and gddccontrol utilities to control monitor parameters using DDC/CI protocol.

Installation

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.

Installation from official packages

On Ubuntu based distrubtions ddccontrol-db, along with utilities, can be installed using apt:

sudo apt install ddccontrol ddccontrol-db gddccontrol

Instructions for other distributions will be prepared later.

Installation from sources

Release archives contain the generated database and compiled translations. On Ubuntu, only make is needed to install one:

sudo apt install make

Building directly from a Git checkout also requires GNU gettext to compile the translations and ddccontrol-dbgen to generate CBOR:

sudo apt install gettext make

Obtain 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
make

Finally, the build can be installed using:

sudo make install

Packagers can stage an installation with DESTDIR, for example:

make install DESTDIR="$pkgdir"

See INSTALL for all supported installation variables and maintainer targets.

Usage

Monitor database is used indirectly with ddccontrol and gddccontrol utilities.

From GUI using gddccontrol

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 gddccontrol

From command line using ddccontrol

ddccontrol allows monitor configuration directly from commandline. To probe I2C devices to find monitor buses use:

sudo ddccontrol -p

To read value of control 0x10 (brightness on VESA compliant monitors) for device dev:/dev/i2c-4:

sudo ddccontrol -r 0x10 dev:/dev/i2c-4

To 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-4

See ddccontrol -h for more information.

Contributing

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.

License

The project is licensed under GNU General Public License v2.0 license. See COPYING for details.

About

DDC Control Monitor Database

Resources

Stars

136 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages