diff --git a/src/xdgmenumaker b/src/xdgmenumaker index 3761ecc..eb970ab 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 = ' ' @@ -503,7 +509,7 @@ def icewm(): command = app.command if seticon and icon is not None: print('{s} prog "{n}" {i} {c}'.format(s=spacing, n=name, - i=icon, c=command)) + i=icon, c=command)) else: print('{s} prog "{n}" _none_ {c}'.format(s=spacing, n=name, c=command)) @@ -540,7 +546,7 @@ def pekwmmenu(): i=cat_icon)) else: print('{d}{s}Submenu = "{c}" {{'.format(d=dspacing, s=spacing, - c=category)) + c=category)) for app in menu_category.applist: name = app.name icon = app.icon @@ -557,11 +563,11 @@ def pekwmmenu(): command = 'cd {p} && {c} || {c}'.format(p=path, c=command) if seticon and icon is not None: print('{d}{s} Entry = "{n}" {{ Icon = "{i}"; Actions = "Exec {c} &" }}' - .format(d=dspacing, s=spacing, n=name, i=icon, - c=command)) + .format(d=dspacing, s=spacing, n=name, i=icon, + c=command)) else: print('{d}{s} Entry = "{n}" {{ Actions = "Exec {c} &" }}' - .format(d=dspacing, s=spacing, n=name, c=command)) + .format(d=dspacing, s=spacing, n=name, c=command)) print('{d}{s}}}'.format(d=dspacing, s=spacing)) if submenu: print('{}}}'.format(dspacing)) @@ -604,15 +610,16 @@ def jwm(): command = 'cd {p} ; {c}'.format(p=path, c=command) if seticon and icon is not None: print('{s} {c}' - .format(s=spacing, i=icon, n=name, c=command)) + .format(s=spacing, i=icon, n=name, c=command)) else: print('{s} {c}' - .format(s=spacing, n=name, c=command)) + .format(s=spacing, n=name, c=command)) print('{}'.format(spacing)) if submenu: print('') print('') + def compizboxmenu(): if submenu: spacing = ' ' @@ -628,7 +635,8 @@ def compizboxmenu(): category = menu_category.category cat_icon = category_icon(category) if seticon and cat_icon is not None: - print('{s}'.format(s=spacing, i=cat_icon, c=category)) + print('{s}'.format( + s=spacing, i=cat_icon, c=category)) else: print('{s}'.format(s=spacing, c=category)) for app in menu_category.applist: @@ -641,13 +649,13 @@ def compizboxmenu(): command = 'sh -c \'cd "{p}" ;{c}\''.format(p=path, c=command) if seticon and icon is not None: print(('{s} {n}' - '{i}' - '{c}').format(s=spacing, - n=name, i=icon, c=command)) + '{i}' + '{c}').format(s=spacing, + n=name, i=icon, c=command)) else: print(('{s} {n}' - '{c}').format(s=spacing, - n=name, c=command)) + '{c}').format(s=spacing, + n=name, c=command)) print('{}'.format(spacing)) if submenu: print('')