diff --git a/cosmic-applet-graphics/src/dbus.rs b/cosmic-applet-graphics/src/dbus.rs index 2ec4aa7d..1e046ee5 100644 --- a/cosmic-applet-graphics/src/dbus.rs +++ b/cosmic-applet-graphics/src/dbus.rs @@ -89,5 +89,9 @@ pub async fn init() -> Option<(Connection, PowerDaemonProxy<'static>)> { _ => return None, }; + if matches!(proxy.introspect().await, Err(zbus::fdo::Error::ServiceUnknown(_))) { + return None; + } + Some((conn, proxy)) } diff --git a/cosmic-applet-graphics/src/window.rs b/cosmic-applet-graphics/src/window.rs index 5ac49d7e..1c4a559c 100644 --- a/cosmic-applet-graphics/src/window.rs +++ b/cosmic-applet-graphics/src/window.rs @@ -132,6 +132,10 @@ impl cosmic::Application for Window { } } Message::DBusInit(dbus) => { + if dbus.is_none() { + eprintln!("Could not connect to com.system76.PowerDaemon. Exiting."); + std::process::exit(0); + } self.dbus = dbus; return iced::Command::perform( get_current_graphics(self.dbus.as_ref().unwrap().1.clone()), @@ -139,7 +143,7 @@ impl cosmic::Application for Window { Message::CurrentGraphics(match cur_graphics { Ok(g) => Some(g), Err(err) => { - eprintln!("{err}"); + eprintln!("{err:?}"); None } })