diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/shared_state.rs | 3 | ||||
| -rw-r--r-- | src/wm_info_provider.rs | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/shared_state.rs b/src/shared_state.rs index 169107b..015fa08 100644 --- a/src/shared_state.rs +++ b/src/shared_state.rs @@ -22,14 +22,17 @@ impl SharedState { <dyn Any>::downcast_mut(self.wm_info_provider.as_mut()) } + #[cfg(feature = "river")] pub fn get_river(&mut self) -> Option<&mut wm_info_provider::RiverInfoProvider> { self.downcast_provider() } + #[cfg(feature = "hyprland")] pub fn get_hyprland(&mut self) -> Option<&mut wm_info_provider::HyprlandInfoProvider> { self.downcast_provider() } + #[cfg(feature = "niri")] pub fn get_niri(&mut self) -> Option<&mut wm_info_provider::NiriInfoProvider> { self.downcast_provider() } diff --git a/src/wm_info_provider.rs b/src/wm_info_provider.rs index 4c5e904..2beff89 100644 --- a/src/wm_info_provider.rs +++ b/src/wm_info_provider.rs @@ -12,13 +12,19 @@ use crate::state::State; mod dummy; pub use dummy::*; +#[cfg(feature = "river")] mod river; +#[cfg(feature = "river")] pub use river::*; +#[cfg(feature = "hyprland")] mod hyprland; +#[cfg(feature = "hyprland")] pub use hyprland::*; +#[cfg(feature = "niri")] mod niri; +#[cfg(feature = "niri")] pub use niri::*; pub trait WmInfoProvider: Any { @@ -49,14 +55,17 @@ pub trait WmInfoProvider: Any { } pub fn bind(conn: &mut Connection<State>, config: &WmConfig) -> Box<dyn WmInfoProvider> { + #[cfg(feature = "river")] if let Some(river) = RiverInfoProvider::bind(conn, config) { return Box::new(river); } + #[cfg(feature = "hyprland")] if let Some(hyprland) = HyprlandInfoProvider::new() { return Box::new(hyprland); } + #[cfg(feature = "niri")] if let Some(niri) = NiriInfoProvider::new() { return Box::new(niri); } |
