system_tray/lib.rs
1/// # System Tray
2///
3/// An async implementation of the `StatusNotifierItem` and `DbusMenu` protocols for building system trays.
4///
5/// Requires Tokio.
6///
7/// ## Example
8///
9/// ```no_run
10/// use system_tray::client::Client;
11///
12/// #[tokio::main]
13/// async fn main() {
14/// let client = Client::new().await.unwrap();
15/// let mut tray_rx = client.subscribe();
16///
17/// let initial_items = client.items();
18///
19/// // do something with initial items...
20///
21/// while let Ok(ev) = tray_rx.recv().await {
22/// println!("{ev:?}"); // do something with event...
23/// }
24/// }
25/// ```
26mod dbus;
27
28/// Client for listening to item and menu events,
29/// and associated types.
30pub mod client;
31
32/// Error and result types.
33pub mod error;
34
35/// `StatusNotifierItem` item representation.
36pub mod item;
37
38/// `DBusMenu` menu representation.
39pub mod menu;
40
41#[cfg(feature = "dbusmenu-gtk3")]
42pub mod gtk_menu;
43
44pub(crate) mod names {
45 pub const WATCHER_BUS: &str = "org.kde.StatusNotifierWatcher";
46 pub const WATCHER_OBJECT: &str = "/StatusNotifierWatcher";
47
48 pub const ITEM_OBJECT: &str = "/StatusNotifierItem";
49}