Brightness
Brightness control uses the kernel backlight interface by default. ddcutil support is opt-in for external monitors that expose DDC/CI brightness.
[brightness]enable_ddcutil = falseignore_mmids = [] # e.g. ["ACI-ROG_PG279Q-10220"] - skip in all ddcutil commandsminimum_brightness = 0.0 # never let brightness drop below this floor (0.0 to 1.0)sync_all_monitors = false # if set to true, makes every display have the same brightness
[brightness.monitor.eDP-1]backend = "backlight" # auto | none | backlight | ddcutilbacklight_device = "intel_backlight" # explicit sysfs device name or path
[brightness.monitor.DP-1]backend = "ddcutil"Notes:
enable_ddcutil = trueonly enables DDC/CI discovery - it does not force every monitor toddcutil.ignore_mmidspasses--ignore-mmidto everyddcutilinvocation. Runddcutil --verbose detectto find monitor model id strings.minimum_brightnessis an opt-in floor (default0.0= disabled). Any brightness change is clamped to at least this value, and the control center slider cannot go below it - useful to keep the screen from going completely dark.sync_all_monitorsonly syncs the brightnesses when one of the display brightnesses change, it does not actively sync them every now and then- Per-monitor overrides use the same connector/description matching rules as bar monitor overrides.
backend = "auto"prefers kernel backlight when available and falls back toddcutil.backend = "none"hides brightness control for the matched monitor.backlight_devicepins a monitor to a specific sysfs backlight device when a connector exposes more than one - accepts a bare name (intel_backlight) or a full path; runnoctalia msg brightness-list-backlight-devicesto list the available device names.ddcutilis treated as best-effort - repeated DDC failures cool down that monitor to avoid hammering the bus.
DDC/CI discovery runs in the background. If a monitor is not ready when Noctalia starts or outputs change, Noctalia retries discovery up to three times, waiting one, two, and four seconds after each completed attempt. Working brightness controls remain available while other monitors are being discovered. Command timeouts can extend the total recovery time.
If controls are still missing after those retries, open Control Center → Monitor and use Rescan DDC/CI monitors
(the refresh icon) to start another discovery attempt and retry cycle. Changing brightness configuration also
starts a new cycle. Outputs configured with backend = "none" or backend = "backlight", and outputs already
served by kernel backlight in auto mode, are excluded from DDC recovery.
Related IPC
Section titled “Related IPC”For brightness commands, targets, accepted value formats, and OSD behavior, see System Controls → Brightness.