# DDC Brightness Control This project aims to be a simple and easy to use DDC brightness control plugin for Gnome ![img.png](attachments/panel.png) ## Features - Brightness control via panel - Adjustable keybindings for brightness controls - Active screen detection - By default, keybinding is alt+shift+f1/f2 for down/up on the active display - Display linking if you want to adjust all displays at once ## Planned Features? - Would be nice to get this added to the system status menu at some point instead of its own dot - Support for direct i2c or better ddc controllers (not ddcutil) - You tell me ## Requirements Regardless of how you install the extension, it shells out to [ddcutil](https://www.ddcutil.com/) to talk to your monitors, so it is a hard requirement. ```bash sudo pacman -S ddcutil ``` Then add your user to the `i2c` group so `ddcutil` can talk to the bus without root, and re-login (or reboot): ```bash sudo usermod -aG i2c $USER reboot ``` ## Installation Pick whichever method fits you. The store route is the easiest, building from source gives you the latest commits. ### 1. GNOME Extensions Store (easiest) Head to the listing and click **Install**: Alternatively, search for **"DDC Brightness Controller"** in the [Extensions Manager](https://github.com/mattjakeman/gnome-extensions) app. ### 2. From Source (git clone) Builds the extension locally and drops it into your user's extension dir. Requires [just](https://github.com/casey/just) as the command runner, plus the same build toolchain used for development (see [Development](#development)): [mise](https://mise.jdx.dev/) for managing tool versions (`node` and `pnpm`), and `glib2` for `glib-compile-schemas`. Arch Linux: ```bash sudo pacman -S git just mise glib2 # mise needs its shell hook: https://mise.jdx.dev/getting-started.html#shells ``` Clone and install: ```bash git clone https://github.com/lucasoskorep/ddc-brightness-control cd ddc-brightness-control mise install just install ``` After installing from source, enable it (toggle in the Extensions app, or): ```bash gnome-extensions enable ddcbrightness@lucaso.io ``` Re-login or restart the shell (`Alt+F2` → `r` on X11) to pick it up. ## Development Building and debugging locally needs a few extra tools beyond the runtime requirements above: - `just` — the command runner - `mise` — runtime & tool manager (pins `node` and `pnpm` in `.mise.toml`) - `uv` — python package manager (used by the schema-analysis helper) - `glib2` — provides `glib-compile-schemas` for compiling the settings schema Arch Linux: ```bash sudo pacman -S just mise uv glib2 ``` Install the pinned tools with mise (defined in `.mise.toml`): ```bash mise install ``` Then: ```bash just install # install deps + build + drop into the extension dir just lint # lint just lint-fix # auto-fix what eslint can just live-debug # tail gnome-shell logs while you poke at it ```