LinuxCommandLibrary

brightnessctl

Control display brightness

TLDR

List devices with changeable brightness

$ brightnessctl [[-l|--list]]
copy

Print the current brightness of the default device
$ brightnessctl [[g|get]]
copy

Print the current brightness of a specific device (can be a wildcard)
$ brightnessctl [[g|get]] [[-d|--device]] '[device_name]'
copy

Set the brightness to a specified percentage
$ brightnessctl [[s|set]] [50]%
copy

Increase brightness by a specified percentage
$ brightnessctl [[s|set]] +[10]%
copy

Decrease brightness by a specified percentage
$ brightnessctl [[s|set]] [10]%-
copy

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)

Copied to clipboard