Crate brightness

Source
Expand description

§Overview

This crate provides definitions to get and set display brightness.

Linux and Windows are supported.

§Example

use brightness::Brightness;
use futures::TryStreamExt;

async fn show_brightness() -> Result<(), brightness::Error> {
    brightness::brightness_devices().try_for_each(|dev| async move {
        let name = dev.device_name().await?;
        let value = dev.get().await?;
        println!("Brightness of device {} is {}%", name, value);
        Ok(())
    }).await
}

§Linux

This crate interacts with devices found at /sys/class/backlight. This means that the ddcci-backlight kernel driver is required to control external displays (via DDC/CI).

Setting brightness is attempted using D-Bus and logind, which requires systemd 243 or newer. If this fails because the method is not available, the desired brightness is written to /sys/class/backlight/$DEVICE/brightness, which requires permission (udev rules can help with that).

§Contribute

All contributions shall be licensed under the 0BSD license.

Modules§

blocking
The blocking API.

Structs§

BrightnessDeviceasync
Async brightness device.

Enums§

Error
Errors used in this API

Traits§

Brightnessasync
Async interface to get and set brightness.

Functions§

brightness_devicesasync
Returns all brightness devices on the running system.