diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/mod.rs | 1 | ||||
| -rw-r--r-- | src/backend/tty.rs | 2 | ||||
| -rw-r--r-- | src/main.rs | 7 | ||||
| -rw-r--r-- | src/niri.rs | 18 |
4 files changed, 21 insertions, 7 deletions
diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 64b1b5da..532b8a9c 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -84,6 +84,7 @@ impl Backend { } } + #[cfg_attr(not(feature = "dbus"), allow(unused))] pub fn connectors(&self) -> Arc<Mutex<HashMap<String, Output>>> { match self { Backend::Tty(tty) => tty.connectors(), diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 403f31ab..16ea4079 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -924,6 +924,7 @@ impl Tty { } pub fn suspend(&self) { + #[cfg(feature = "dbus")] if let Err(err) = suspend() { warn!("error suspending: {err:?}"); } @@ -1026,6 +1027,7 @@ fn refresh_interval(mode: DrmMode) -> Duration { Duration::from_nanos(refresh_interval) } +#[cfg(feature = "dbus")] fn suspend() -> anyhow::Result<()> { let conn = zbus::blocking::Connection::system().context("error connecting to system bus")?; let manager = logind_zbus::manager::ManagerProxyBlocking::new(&conn) diff --git a/src/main.rs b/src/main.rs index c9d10ea0..57308f6b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ mod animation; mod backend; mod config; mod cursor; +#[cfg(feature = "dbus")] mod dbus; mod frame_clock; mod handlers; @@ -37,8 +38,6 @@ use tracing_subscriber::EnvFilter; use utils::spawn; use watcher::Watcher; -use crate::dbus::DBusServers; - #[derive(Parser)] #[command(author, version, about, long_about = None)] struct Cli { @@ -104,12 +103,14 @@ fn main() { import_env_to_systemd(); // Inhibit power key handling so we can suspend on it. + #[cfg(feature = "dbus")] if let Err(err) = state.niri.inhibit_power_key() { warn!("error inhibiting power key: {err:?}"); } } - DBusServers::start(&mut state, is_systemd_service); + #[cfg(feature = "dbus")] + dbus::DBusServers::start(&mut state, is_systemd_service); // Notify systemd we're ready. if let Err(err) = sd_notify::notify(true, &[NotifyState::Ready]) { diff --git a/src/niri.rs b/src/niri.rs index 4adc9e31..0eccee18 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1,5 +1,4 @@ use std::cell::RefCell; -use std::cmp::max; use std::collections::HashMap; use std::ffi::OsString; use std::path::PathBuf; @@ -15,7 +14,6 @@ use smithay::backend::renderer::element::surface::{ render_elements_from_surface_tree, WaylandSurfaceRenderElement, }; use smithay::backend::renderer::element::texture::TextureRenderElement; -use smithay::backend::renderer::element::utils::{Relocate, RelocateRenderElement}; use smithay::backend::renderer::element::{ default_primary_scanout_output_compare, render_elements, AsRenderElements, Kind, RenderElement, RenderElementStates, @@ -74,10 +72,10 @@ use smithay::wayland::virtual_keyboard::VirtualKeyboardManagerState; use crate::backend::{Backend, Tty, Winit}; use crate::config::Config; use crate::cursor::Cursor; +#[cfg(feature = "dbus")] use crate::dbus::gnome_shell_screenshot::{NiriToScreenshot, ScreenshotToNiri}; #[cfg(feature = "xdp-gnome-screencast")] use crate::dbus::mutter_screen_cast::{self, ScreenCastToNiri}; -use crate::dbus::DBusServers; use crate::frame_clock::FrameClock; use crate::layout::{output_size, Layout, MonitorRenderElement}; use crate::pw_utils::{Cast, PipeWire}; @@ -134,7 +132,9 @@ pub struct Niri { pub cursor_image: CursorImageStatus, pub dnd_icon: Option<WlSurface>, - pub dbus: Option<DBusServers>, + #[cfg(feature = "dbus")] + pub dbus: Option<crate::dbus::DBusServers>, + #[cfg(feature = "dbus")] pub inhibit_power_key_fd: Option<zbus::zvariant::OwnedFd>, // Casts are dropped before PipeWire to prevent a double-free (yay). @@ -352,6 +352,7 @@ impl State { } } + #[cfg(feature = "dbus")] pub fn on_screen_shot_msg( &mut self, to_screenshot: &async_channel::Sender<NiriToScreenshot>, @@ -533,13 +534,17 @@ impl Niri { cursor_image: CursorImageStatus::default_named(), dnd_icon: None, + #[cfg(feature = "dbus")] dbus: None, + #[cfg(feature = "dbus")] inhibit_power_key_fd: None, + pipewire, casts: vec![], } } + #[cfg(feature = "dbus")] pub fn inhibit_power_key(&mut self) -> anyhow::Result<()> { let conn = zbus::blocking::ConnectionBuilder::system()?.build()?; @@ -1520,12 +1525,17 @@ impl Niri { Ok(()) } + #[cfg(feature = "dbus")] pub fn screenshot_all_outputs( &mut self, renderer: &mut GlesRenderer, include_pointer: bool, on_done: impl FnOnce(PathBuf) + Send + 'static, ) -> anyhow::Result<()> { + use std::cmp::max; + + use smithay::backend::renderer::element::utils::{Relocate, RelocateRenderElement}; + let _span = tracy_client::span!("Niri::screenshot_all_outputs"); let mut elements = vec![]; |
