diff --git a/ks_includes/sdbus_nm.py b/ks_includes/sdbus_nm.py index 88db30ac..0b053d2b 100644 --- a/ks_includes/sdbus_nm.py +++ b/ks_includes/sdbus_nm.py @@ -82,6 +82,8 @@ class SdbusNm: def __init__(self): self.system_bus = sd_bus_open_system() # We need system bus + if self.system_bus is None: + return None set_default_bus(self.system_bus) self.nm = NetworkManager() if self.get_wireless_interfaces(): diff --git a/panels/network.py b/panels/network.py index 9cd78aae..9a551145 100644 --- a/panels/network.py +++ b/panels/network.py @@ -17,7 +17,20 @@ class Panel(ScreenPanel): self.network_list = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, hexpand=True, vexpand=True) self.network_rows = {} self.networks = {} - self.sdbus_nm = SdbusNm() + try: + self.sdbus_nm = SdbusNm() + except Exception as e: + logging.exception("Failed to initialize") + self.sdbus_nm = None + self.content.add( + Gtk.Label( + label=_("Failed to initialize sdbus") + f"\n{e}", + wrap=True, + wrap_mode=Pango.WrapMode.WORD_CHAR, + ) + ) + self._screen.panels_reinit.append(self._screen._cur_panels[-1]) + return self.wifi_signal_icons = { 'excellent': self._gtk.PixbufFromIcon('wifi_excellent'), 'good': self._gtk.PixbufFromIcon('wifi_good'), @@ -322,8 +335,10 @@ class Panel(ScreenPanel): self.activate() def activate(self): + if self.sdbus_nm is None: + return if self.update_timeout is None: - if self.sdbus_nm is not None and self.sdbus_nm.wifi: + if self.sdbus_nm.wifi: if self.reload_button.get_sensitive(): self._gtk.Button_busy(self.reload_button, True) self.sdbus_nm.rescan()