A Rust implementation of the ddcutil Linux program for Windows. Uses the VESA Monitor Control Command Set (MCCS) over the Display Data Channel Command Interface Standard (DDC-CI) to query and change monitor settings, such as brightness, color levels, input switching and power modes.
- Detect connected monitors
- Query monitor capabilities
- Get VCP feature values
- Set VCP feature values
git clone https://github.com/cyb0rg56/winddcutil_rs.git
cd winddcutil_rs
cargo build --release
The executable will be located at target/release/winddcutil_rs.exe
.
winddcutil_rs [COMMAND]
detect
: Lists all connected monitors with DDC/CI supportcapabilities <display>
: Shows the capabilities of the specified monitorgetvcp <display> <feature_code>
: Gets the current value of a VCP featuresetvcp <display> <feature_code> <new_value>
: Sets a VCP feature to a specific value
# List all monitors
winddcutil_rs detect
# Get monitor capabilities
winddcutil_rs capabilities 1
# Get brightness (feature code 0x10)
winddcutil_rs getvcp 1 0x10
# Set brightness to 75
winddcutil_rs setvcp 1 0x10 75
# Toggle input source between HDMI1 (0x11) and HDMI2 (0x12)
winddcutil_rs setvcp 1 0x60 0x11
0x10
: Brightness0x12
: Contrast0x60
: Input Source0xD6
: Power Mode
If you receive a "No monitors with DDC/CI support found" error:
- Ensure your monitor supports DDC/CI
- Enable DDC/CI in your monitor's OSD menu
- Try using a different connection type (HDMI, DisplayPort, etc.)
- Some monitors require specific drivers to be installed
If you receive an "Invalid feature code" error:
- Ensure the feature code is valid (between 0x00 and 0xFF)
- Check if your monitor supports the specific feature code
- Use
capabilities
command to check supported features