How to use the xdg.Menu function in xdg

To help you get started, we’ve selected a few xdg examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ju1ius / uxdgmenu / quicktests / xdg_apps.py View on Github external
def print_dir(entry, l):
    i = "  " * l
    pu(i + "+==MENU")
    pu(i, "|- name: " +  repr(entry.getName()))
    pu(i + "|- id:", entry.Name)
    pu(i + "|- icon:", entry.getIcon())
    de = entry.Directory
    pu(i + "|- file:" + (de and de.DesktopEntry.filename or "None"))
    pu(i + "|")
    pu(i + " \\")
    for e in entry.getEntries():
        if isinstance(e, xdg.Menu.Separator):
            print_sep(e, l+1)
        elif isinstance(e, xdg.Menu.Menu):
            print_dir(e, l+1)
        elif isinstance(e, xdg.Menu.MenuEntry):
            print_app(e, l+1)
github ju1ius / uxdgmenu / usr / lib / uxdgmenu / uxm / adapters / xdg_adapter.py View on Github external
def __iter__(self):
        for entry in self.adaptee.getEntries(self.show_hidden):
            if isinstance(entry, xdg.Menu.Separator):
                yield XdgSeparatorAdapter(entry)
            elif isinstance(entry, xdg.Menu.Menu):
                yield XdgDirectoryAdapter(entry)
            elif isinstance(entry, xdg.Menu.MenuEntry):
                yield XdgEntryAdapter(entry)
github ArnaudValensi / xdg-menu-to-awesome-wm / awesome-xdg-menu.py View on Github external
if len(sys.argv) > 1:
	menufile = sys.argv[1] + '.menu'
else:
	menufile = 'applications.menu'

lang = os.environ.get('LANG')
if lang:
	xdg.Config.setLocale(lang)

# lie to get the same menu as in GNOME
xdg.Config.setWindowManager('GNOME')

if icons:
  theme = Gtk.IconTheme.get_default()

menu = xdg.Menu.parse(menufile)

#map(walk_menu, menu.getEntries())
map(generate_awesome_menu, menu.getEntries())

generate_main_menu()
github trisquelgnulinux / trisquel-packages / 6.0 / gnome-app-install / util / outputMenuData.py View on Github external
if __name__ == "__main__":
    parser = OptionParser()
    parser.add_option("-s", "--srcdir", dest="srcdir",
                      default="/usr/share/app-install/desktop/",
                      help="directory for the menu-data")
    parser.add_option("-d", "--destdir", dest="destdir",
                      default="output",
                      help="dir for the output")
    (options, args) = parser.parse_args()

    # get a cache
    cache = apt.Cache()

    # read menu
    menu = CoreApplicationMenu(options.srcdir)
    root = xdg.Menu.parse(os.path.join(options.srcdir, "applications.menu"))
    menu._populateFromEntry(root)

    # output per section
    index_file = open(os.path.join(options.destdir,"sections.txt"),"w")
    sections = menu.pickle.keys()
    sections.sort()
    for section in sections:
        name = unescape(section.name)
        index_file.write("%s\n" % name)
        section_file = open(os.path.join(options.destdir,name+".txt"),"w")
        for app in menu.pickle[section]:
            if not cache.has_key(app.pkgname):
                print "ERROR: can't find '%s' in apt cache" % app.pkgname
                continue
            section_file.write("%s (%s) %s %s\n\n" % (
                app.name.encode('utf-8'),
github Jolicloud / jolicloud-daemon / jolicloud_daemon / managers / apps.py View on Github external
def get_menu(menu):
            for entry in menu.getEntries():
                if isinstance(entry, xdg.Menu.Menu):
                    get_menu(entry)
                elif isinstance(entry, xdg.Menu.MenuEntry):
                    desktops[entry.DesktopEntry.getFileName()] = {
                        'name': entry.DesktopEntry.getName(),
                        'desktop': entry.DesktopEntry.getFileName()
                    }
github ArnaudValensi / xdg-menu-to-awesome-wm / awesome-xdg-menu.py View on Github external
def walk_menu(entry):
	if isinstance(entry, xdg.Menu.Menu) and entry.Show is True:
		print '<menu label="%s" id="%s">' \
			% (entry_name(entry),
			entry_name(entry),
			escape_utf8(icon_attr(entry)))
		map(walk_menu, entry.getEntries())
		print '</menu>'
	elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True:
		print '	' % \
			(entry_name(entry.DesktopEntry).replace('"', ''),
			escape_utf8(icon_attr(entry.DesktopEntry)))
		command = re.sub(' -caption "%c"| -caption %c', ' -caption "%s"' % entry_name(entry.DesktopEntry), entry.DesktopEntry.getExec())
		command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', command)
		if entry.DesktopEntry.getTerminal():
			command = 'xterm -title "%s" -e %s' % \
				(entry_name(entry.DesktopEntry), command)
		print '		' + \
github trisquelgnulinux / trisquel-packages / 7.0 / gnome-app-install / AppInstall / CoreMenu.py View on Github external
item.menupath = [_("Applications"),parent.name]
                    else:
                        item.menupath = None
                    self.pickle[parent].append(item)
                elif name:
                    try:
                        print "Skipped %s: not associated with a package" % entry
                    except UnicodeEncodeError:
                        pass
                else:
                    try:
                        print "Skipped %s: does not include a menu name" % entry
                    except UnicodeEncodeError:
                        pass
 
            elif isinstance(entry, xdg.Menu.Header):
                print "got header"
github ssokolow / game_launcher / src / game_providers / xdg_menu.py View on Github external
def _process_menu(menu):
    """Recursive handler for getting games from menus.

    Written based on this public-domain code by Konstantin Korikov:
    http://mmoeller.fedorapeople.org/icewm/icewm-xdg-menu/icewm-xdg-menu
    """
    entries = []
    for entry in menu.getEntries():
        if isinstance(entry, xdg.Menu.Menu):
            entries.extend(_process_menu(entry))
        elif isinstance(entry, xdg.Menu.MenuEntry):
            dentry = entry.DesktopEntry

            entries.append(dentry)
        else:
            log.debug("S: %s", entry)

    return entries