wayle-battery 0.1.2

Battery monitoring service with reactive state
Documentation

wayle-battery

Battery monitoring via UPower D-Bus with reactive state updates.

Crates.io docs.rs License: MIT

cargo add wayle-battery

Usage

BatteryService monitors UPower's composite DisplayDevice by default. All device properties are reactive Property<T> types.

use wayle_battery::BatteryService;
use futures::StreamExt;

async fn example() -> Result<(), wayle_battery::Error> {
    let service = BatteryService::new().await?;

    let percentage = service.device.percentage.get();
    let state = service.device.state.get();
    println!("Battery: {percentage}% ({state})");

    let mut stream = service.device.state.watch();
    while let Some(new_state) = stream.next().await {
        println!("State changed: {new_state}");
    }
    Ok(())
}

For a specific battery, use BatteryService::builder().device_path(path).build().await?.

License

MIT

Part of wayle-services.