diff --git a/src/xdgmenumaker b/src/xdgmenumaker index fa6dd6c..5830cbc 100755 --- a/src/xdgmenumaker +++ b/src/xdgmenumaker @@ -38,6 +38,7 @@ class App: ''' A class to keep individual app details in. ''' + def __init__(self, name, icon, command, path): self.name = name self.icon = icon @@ -46,26 +47,30 @@ class App: def __repr__(self): return repr((self.name, self.icon, self.command, - self.path)) + self.path)) + class MenuEntry: ''' A class for each menu entry. Includes the class category and app details from the App class. ''' + def __init__(self, category, app): self.category = category self.app = app def __repr__(self): return repr((self.category, self.app.name, self.app.icon, - self.app.command, self.app.path)) + self.app.command, self.app.path)) + class MenuCategory: ''' A class for each menu category. Keeps the category name and the list of apps that go in that category. ''' + def __init__(self, category, applist): self.category = category self.applist = applist @@ -247,7 +252,7 @@ def get_entry_info(desktopfile, ico_paths=True): de = dentry.DesktopEntry(filename=desktopfile) # skip processing the rest of the desktop entry if the item is to not be - # displayed anyway + # displayed anyway onlyshowin = de.getOnlyShowIn() notshowin = de.getNotShowIn() hidden = de.getHidden() @@ -271,7 +276,6 @@ def get_entry_info(desktopfile, ico_paths=True): else: icon = None - # removing any %U or %F from the exec line command = de.getExec().partition('%')[0] @@ -409,6 +413,7 @@ def category_icon(category): icon = None return icon + def blackbox(): # Blackbox menus are the same as Fluxbox menus. They just don't support # icons. @@ -416,6 +421,7 @@ def blackbox(): seticon = False fluxbox() + def fluxbox(): if submenu: spacing = ' ' @@ -603,13 +609,14 @@ def jwm(): print('') print('') + def compizboxmenu(): if submenu: spacing = ' ' if seticon: app_icon = icon_strip(applications_icon) print('') + '" name="' + applications + '">') else: print('') else: @@ -628,16 +635,18 @@ def compizboxmenu(): command = app.command path = app.path if path is not None: - command = 'sh -c \'cd "' + path.replace("'", "'\\''") + '" ; ' + command.replace("'", "'\\''") + '\'' + command = 'sh -c \'cd "' + \ + path.replace("'", "'\\''") + '" ; ' + \ + command.replace("'", "'\\''") + '\'' if seticon and icon is not None: print(('{} {}' - '{}' - '{}').format(spacing, - name, icon, command.replace('&', '&'))) + '{}' + '{}').format(spacing, + name, icon, command.replace('&', '&'))) else: print(('{} {}' - '{}').format(spacing, - name, command.replace('&', '&'))) + '{}').format(spacing, + name, command.replace('&', '&'))) print(spacing + '') if submenu: print('')