screen-wake-lock 0.1.0

Cross-platform library to prevent display sleep/idle using wake locks
Documentation
use screen_wake_lock::ScreenWakeLock;
use std::time::Duration;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut args = std::env::args().skip(1);

    let reason = args
        .next()
        .unwrap_or_else(|| "Running screen-wake-lock example".to_string());

    let seconds: u64 = args.next().as_deref().unwrap_or("10").parse().unwrap_or(10);

    if !ScreenWakeLock::is_supported() {
        eprintln!("Wake lock is not supported in this environment.");
        std::process::exit(2);
    }

    let _lock = ScreenWakeLock::acquire(&reason)?;

    println!("Keeping the display awake for {seconds}s: {reason}");
    std::thread::sleep(Duration::from_secs(seconds));
    println!("Done (wake lock released when dropped).");

    Ok(())
}