core-agent-linux/misc/qubes-desktop-run

37 lines
900 B
Python
Executable File

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim: set ft=python ts=4 sw=4 sts=4 et :
import sys
import subprocess
from gi.repository import Gio
def main(myname, desktop, *files):
info = Gio.DesktopAppInfo()
dbus_activate = False
try:
launcher = info.new_from_filename(desktop)
except TypeError:
launcher = None
if launcher:
try:
dbus_activate = launcher.get_boolean('DBusActivatable')
except AttributeError:
dbus_activate = False
if not dbus_activate:
launcher.launch(files, None)
else:
if dbus_activate:
cmd = ['gapplication', 'launch', launcher.get_id().replace('.desktop', '')]
if files:
cmd.extend(files)
process = subprocess.Popen(cmd, close_fds=True)
if __name__ == "__main__":
main(*sys.argv)