5 unstable releases

0.3.2 Jan 9, 2023
0.3.1 Dec 5, 2022
0.3.0 Oct 3, 2022
0.2.0 Jan 5, 2022
0.1.0 May 9, 2018

#3 in #logind

Download history 159/week @ 2024-01-03 155/week @ 2024-01-10 153/week @ 2024-01-17 133/week @ 2024-01-24 121/week @ 2024-01-31 144/week @ 2024-02-07 156/week @ 2024-02-14 126/week @ 2024-02-21 179/week @ 2024-02-28 325/week @ 2024-03-06 214/week @ 2024-03-13 1116/week @ 2024-03-20 554/week @ 2024-03-27 485/week @ 2024-04-03 501/week @ 2024-04-10 781/week @ 2024-04-17

2,400 downloads per month
Used in 3 crates

MIT license

15KB
118 lines

upower-dbus

A Rust library which interfaces with UPower status information through dbus.

Examples

Detecting if the system is running on battery

extern crate upower_dbus;

use futures::stream::StreamExt;
use upower_dbus::UPowerProxy;

fn main() -> zbus::Result<()> {
    futures::executor::block_on(async move {
        let connection = zbus::Connection::system().await?;

        let upower = UPowerProxy::new(&connection).await?;

        println!("On Battery: {:?}", upower.on_battery().await);

        let mut stream = upower.receive_on_battery_changed().await;

        while let Some(event) = stream.next().await {
            println!("On Battery: {:?}", event.get().await);
        }

        Ok(())
    })
}

Getting the current battery status as a percentage

extern crate upower_dbus;

use upower_dbus::UPowerProxy;

fn main() -> zbus::Result<()> {
    futures::executor::block_on(async move {
        let connection = zbus::Connection::system().await?;

        let upower = UPowerProxy::new(&connection).await?;

        let device = upower.get_display_device().await?;

        println!("Battery: {:?}", device.percentage().await);

        Ok(())
    })
}

Dependencies

~12–25MB
~365K SLoC