brightwheel 0.1.3

Windows tray utility for DDC/CI monitor brightness and HDR control
# BrightWheel


BrightWheel is a small Windows tray app for controlling an external monitor's
brightness over DDC/CI. It uses the Windows monitor API directly, so it does not
require vendor software.

From the tray icon you can:

- scroll to change the primary monitor's brightness;
- double-click to toggle HDR;
- hold left Ctrl and click to turn off all monitors after five seconds;
- enable or disable startup with Windows, or exit the app.

Scrolling accelerates from precise 2% steps to 10% steps during a continuous
gesture. Startup with Windows is enabled on first launch and can be disabled
from the tray menu.

## Requirements


- 64-bit Windows 10 or 11 for the prebuilt release;
- an external monitor with DDC/CI enabled in its on-screen settings;
- Windows and monitor support for HDR toggling.

## Install


Download `brightwheel.exe` from the
[latest release](https://github.com/qqrm/brightwheel/releases/latest) and run it.
The executable is self-contained, but unsigned releases may trigger a Windows
SmartScreen warning on first launch.

Alternatively, install both the tray app and CLI with Rust:

```powershell
cargo install brightwheel --locked
```

## Command line


The optional `bright.exe` companion is intended for diagnostics and scripts:

```text
bright list
bright get [MONITOR]
bright set PERCENT [MONITOR]
bright change DELTA [MONITOR]
bright capabilities [MONITOR]
bright hdr
bright hdr-toggle
```

`PERCENT` is a brightness value from 0 to 100. `[MONITOR]` is an optional
numeric index printed by `bright list`; do not type the square brackets. If the
index is omitted, monitor `0` is used.

For example:

```powershell
bright get          # read brightness from monitor 0
bright get 1        # read brightness from monitor 1
bright set 65 1     # set monitor 1 to 65%
bright change -5    # lower monitor 0 by 5%
```

## Build


Build from a Windows shell with Rust 1.85 or newer and the Windows SDK installed
(`rc.exe` is required for the tray icon):

```powershell
cargo build --release --locked
```

The binaries are written to `target\release\brightwheel.exe` and
`target\release\bright.exe`.

Run the project checks with:

```powershell
cargo fmt --all -- --check
cargo clippy --all-targets --locked -- -D warnings
cargo test --all-targets --locked
```

Hardware-independent behavior is covered by automated tests. DDC/CI and HDR
still require manual testing with a compatible monitor.

## License


[MIT](LICENSE)