euro_focus/
lib.rs

1mod config;
2mod error;
3mod focus_tracker;
4mod focused_window;
5
6#[cfg(target_os = "macos")]
7#[path = "macos/mod.rs"]
8mod platform;
9
10#[cfg(target_os = "linux")]
11#[path = "linux/mod.rs"]
12mod platform;
13#[cfg(target_os = "windows")]
14#[path = "windows/mod.rs"]
15mod platform;
16
17pub use config::{FocusTrackerConfig, IconConfig};
18pub use error::{EuroFocusError, EuroFocusResult};
19pub use focus_tracker::FocusTracker;
20pub use focused_window::FocusedWindow;
21
22// For platform specific util API's
23pub use platform::utils;
24
25/// Subscribe to focus changes and receive them via a channel
26/// This is a convenience function that creates a new FocusTracker with default config and subscribes to changes
27pub fn subscribe_focus_changes() -> EuroFocusResult<std::sync::mpsc::Receiver<FocusedWindow>> {
28    let tracker = FocusTracker::new();
29    tracker.subscribe_focus_changes()
30}