DDCutil Cheat Sheet
A compact but comprehensive reference for controlling external monitors using ddcutil. Includes detection, querying, setting values, troubleshooting, and advanced usage.
DDCutil communicates with monitors that implement the Monitor Control Command Set (MCCS) using the DDC/CI protocol on an I2C bus. Normally, the video driver for the monitor exposes the I2C bus as devices named /dev/i2c-n.
Alternatively, ddcutil can communicate with monitors that use USB to communicate MMCS, provided the monitors meet the USB Monitor Control Class Specification.
Install ddcutil on Gentoo Linux
Files where edid is stored
cat /sys/class/drm/card0-HDMI-A-{1,2}/enabled
cat /sys/class/drm/card0-HDMI-A-2/dpms
cat /sys/class/drm/card0-HDMI-A-2/enabled
cat /sys/class/drm/card0-HDMI-A-2/status
cat /sys/class/drm/card0-HDMI-A-2/connector_id
cat /sys/class/drm/card0-DP-1/dpms
cat /sys/class/drm/card0-DP-1/enabled
cat /sys/class/drm/card0-DP-1/status
cat /sys/class/drm/card0-DP-1/connector_id
cat /sys/bus/i2c/devices/i2c-0/name
cat /sys/bus/i2c/devices/i2c-3/name
cat /sys/bus/i2c/devices/i2c-5/name
cat /sys/class/drm/card0-DP-3/dpms
cat /sys/class/drm/card0-DP-3/enabled
cat /sys/class/drm/card0-DP-3/status
cat /sys/class/drm/card0-DP-3/connector_id
cat /sys/bus/i2c/devices/i2c-1/name
cat /sys/bus/i2c/devices/i2c-2/name
cat /sys/bus/i2c/devices/i2c-3/name
cat /sys/bus/i2c/devices/i2c-4/name
cat /sys/bus/i2c/devices/i2c-5/name
cat /sys/bus/i2c/devices/i2c-6/name
To allow non-root users access to the /dev/i2c-* devices
- users to the i2c group:
usermod -aG i2c $(whoami) - Restart the computer or reload the
i2c-devmodule to activate the new udev rule. - For more information read:
http://www.ddcutil.com/i2c_permissions/ - Running
udev control --reloadfor reloading rules and databases ..
DDCutil capabilities
Command ddcutil capabilities shows the capabilities sring reported by the monitor that ddcutil has identified as display number
Capabilities / Cache / DSA / Discard
!!! Example "VCP Info (General)
Command ddcutil – Feature Information
Reports everything that ddcutil knows about a particular feature, including feature values.
VCP Info (Specific Features)
Capabilities (Display-Specific)
Detecting Displays
USB Options
DDC Checks
Get VCP Values
!!! Example "Set VCP Values
MCCS / Tables / Profiles
USB Monitor Check
Miscellaneous
Output Level Options
- Options
--terse (alt --brief)and--versbosedecrease or increase the amount of output for many commands. - Multiple feature/new-value pairs can be given on a single setvcp command. For example:
Monitor Detection
Query Monitor Capabilities
Dump all capabilities
- Find mfg by: Manufacturer
Read VCP Values
Read a single VCP code
Set VCP Values
Set input source
Common values:
01VGA03DVI0FDisplayPort11HDMI 112HDMI 2
Profiles & Bulk Operations
Testing & Debugging
Advanced Usage
Common VCP Codes (Quick Reference)
| Code | Meaning | Notes |
|---|---|---|
10 |
Brightness | 0–100 |
12 |
Contrast | 0–100 |
14 |
Select color preset | sRGB, 6500K, etc |
16 |
Red gain | RGB calibration |
18 |
Green gain | RGB calibration |
1A |
Blue gain | RGB calibration |
52 |
Audio volume | Some monitors |
60 |
Power mode | On/Off/Standby |
D6 |
Input source | HDMI/DP/DVI |
Example Workflows
Set brightness on all monitors
Switch all displays to DisplayPort
Troubleshooting Tips
-
Add your user to the
i2cgroup: -
Ensure kernel modules are loaded:
-
Disable Wayland if DDC fails under GNOME.
- Some monitors block DDC over USB‑C hubs; try direct DisplayPort.