diff --git a/misc/xdg.py b/misc/xdg.py index 205602f..7e884bf 100755 --- a/misc/xdg.py +++ b/misc/xdg.py @@ -2,18 +2,25 @@ from gi.repository import Gio import sys -import dbus def launch(desktop, *files): launcher = Gio.DesktopAppInfo.new_from_filename(desktop) - if hasattr(launcher, 'get_boolean'): - activatable = launcher.get_boolean('DBusActivatable') - if activatable: - bus = dbus.SessionBus() - service_id = launcher.get_id() - # cut the .desktop suffix - service_id = service_id[:-8] - bus.start_service_by_name(service_id) + try: + import dbus + if hasattr(launcher, 'get_boolean'): + activatable = launcher.get_boolean('DBusActivatable') + if activatable: + bus = dbus.SessionBus() + service_id = launcher.get_id() + # cut the .desktop suffix + service_id = service_id[:-8] + try: + bus.start_service_by_name(service_id) + except dbus.DBusException: + pass + return launcher.launch(files, None) + except ImportError: + pass launcher.launch(files, None) if __name__ == "__main__":