#!/usr/bin/python

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)
    launcher.launch(files, None)

if __name__ == "__main__":
    launch(*sys.argv[1:])