1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! Backlight control for internal displays.
//!
//! All state is exposed via [`Property`](wayle_core::Property) fields that
//! update automatically when brightness changes.
//!
//! # Quick Start
//!
//! ```rust,no_run
//! use wayle_brightness::{BrightnessService, Percentage};
//!
//! # async fn example() -> Result<(), wayle_brightness::Error> {
//! let Some(brightness) = BrightnessService::new().await? else {
//! return Ok(());
//! };
//!
//! if let Some(device) = brightness.primary.get() {
//! println!("{}: {}", device.name, device.percentage());
//! device.set_percentage(Percentage::new(50.0)).await?;
//! }
//! # Ok(())
//! # }
//! ```
//!
//! # Watching for Changes
//!
//! ```rust,no_run
//! use wayle_brightness::BrightnessService;
//! use futures::StreamExt;
//!
//! # async fn example() -> Result<(), wayle_brightness::Error> {
//! # let Some(brightness) = BrightnessService::new().await? else { return Ok(()) };
//! let mut stream = brightness.primary.watch();
//!
//! while let Some(maybe_device) = stream.next().await {
//! if let Some(device) = maybe_device {
//! println!("brightness: {}", device.percentage());
//! }
//! }
//! # Ok(())
//! # }
//! ```
//!
//! # Non-systemd Systems
//!
//! Direct sysfs writes require `video` group membership.
/// [`BrightnessServiceBuilder`] for custom configuration.
/// [`BacklightDevice`] and monitoring.
/// [`Error`] variants for backlight operations.
/// [`BrightnessService`] entry point.
/// [`BacklightType`](types::BacklightType), [`Percentage`], [`DeviceName`].
pub use BacklightDevice;
pub use BrightnessServiceBuilder;
pub use Error;
pub use BrightnessService;
pub use ;
;