brightnessctl
Control display brightness
TLDR
List devices with changeable brightness
Print the current brightness of the default device
Print the current brightness of a specific device (can be a wildcard)
Set the brightness to a specified percentage
Increase brightness by a specified percentage
Decrease brightness by a specified percentage
SYNOPSIS
brightnessctl [OPTION...] [COMMAND [ARG...]]
PARAMETERS
-l, --list
print a list of all available devices
-L, --list-verbose
print a detailed list of all devices
-d, --device=ID
select initial device by ID (default: first available)
-q, --quiet
do not print the value
-r, --raw
print/read decimal integer value instead of percentage
-c, --class=CLASS
select devices of class backlight|leds (default: backlight)
-p, --print-query
print the value set via commandline
-C, --current
select the sysfs device associated with the ACPI video extension
-h, --help
print help and exit
-v, --version
print version and exit
get
print current brightness
set VALUE[%[+|-]]
set brightness; VALUE can be absolute percentage, raw value, or relative (+/-)
info
print extra device information
detect
detect available devices
DESCRIPTION
brightnessctl is a lightweight, dependency-free command-line tool for querying and controlling brightness levels of backlight and leds devices on Linux systems. It directly interfaces with the sysfs filesystem under /sys/class/backlight or /sys/class/leds, making it fast and portable across distributions.
Primarily used for laptop screen brightness adjustment, it supports multiple devices simultaneously, such as displays, keyboard backlights, and external monitors. Users can get current brightness, set absolute values (e.g., 50%), relative changes (e.g., +10% or -5%), or list devices. It handles percentage-based values by default but supports raw integer modes for scripting precision.
The tool detects available devices automatically and allows selection by ID or class. It's ideal for keybindings in desktop environments like i3 or sway, or automation scripts. Unlike graphical tools, it works in TTY and over SSH. No X11 dependency means it's suitable for Wayland, console-only setups, or servers with controllable LEDs.
brightnessctl requires appropriate permissions; non-root users may need group membership (e.g., video) or udev rules for access. It's widely adopted for its simplicity and reliability on modern hardware with kernel backlight support.
CAVEATS
Requires read/write access to /sys/class/backlight/* (add user to 'video' group or use udev rules). Relative changes (--raw) are absolute offsets. Not all hardware supports fine-grained control without kernel modules like acpi_backlight.
EXAMPLES
brightnessctl s 50%
Sets brightness to 50%.
brightnessctl s +10%
Increases by 10%.
brightnessctl -l
Lists devices.
brightnessctl -d intel_backlight g
Gets raw value for specific device.
INSTALLATION
Available in most distro repos (e.g., apt install brightnessctl). Build from source: git clone https://github.com/Hummer12007/brightnessctl.git; make; make install.
HISTORY
Developed by Julien Brunel (inconvergent) starting 2015 as a simple xbacklight alternative. Written in C for minimal footprint. Actively maintained on GitHub; versions track kernel sysfs changes. Gained popularity in minimal DE/WM communities.
SEE ALSO
xbacklight(1), light(1)


