Browse Source

Add support for Compiz Boxmenu

pull/5/head
ShadowKyogre 9 years ago
parent
commit
d541067a66
  1. 51
      src/xdgmenumaker

51
src/xdgmenumaker

@ -188,6 +188,8 @@ def main(argv):
pekwmmenu()
elif desktop == "jwm":
jwmmenu()
elif desktop == "compizboxmenu":
compizboxmenu()
else:
usage()
sys.exit(2)
@ -235,7 +237,7 @@ def icon_full_path(icon):
return icon
def get_entry_info(desktopfile):
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
@ -257,6 +259,7 @@ def get_entry_info(desktopfile):
if seticon:
# strip the directory and extension from the icon name
icon = de.getIcon()
if ico_paths:
icon = icon_full_path(icon)
else:
icon = None
@ -349,11 +352,11 @@ def desktopfilelist():
return filelist
def menu():
def menu(ico_paths=True):
applist = []
for desktopfile in desktopfilelist():
try:
entry = get_entry_info(desktopfile)
entry = get_entry_info(desktopfile, ico_paths=ico_paths)
if entry is not None:
applist.append(entry)
except exc.ParsingError:
@ -593,5 +596,47 @@ def jwmmenu():
print('</Menu>')
print('</JWM>')
def compizboxmenu():
if submenu:
spacing = '\t'
if seticon:
app_icon = icon_full_path(applications_icon)
if app_icon is None:
print('<menu name="' + applications + '">')
else:
print('<menu icon="' + app_icon +
'" name="' + applications + '">')
else:
print('<menu name="' + applications + '">')
else:
spacing = ''
for menu_category in menu(ico_paths=False):
category = menu_category.category
cat_icon = category_icon(category)
if seticon and cat_icon is not None:
print(spacing + '<menu icon="' + cat_icon +
'" name="' + category + '">')
else:
print(spacing + '<menu name="' + category + '">')
for app in menu_category.applist:
name = app.name
icon = app.icon
command = app.command
path = app.path
if path is not None:
command = 'sh -c \'cd "' + path.replace("'", "'\\''") + '" ; ' + command.replace("'", "'\\''") + '\''
if seticon and icon is not None:
print(('{}<item type="launcher"><name>{}</name>'
'<icon>{}</icon>'
'<command>{}</command></item>').format(spacing,
name, icon, command))
else:
print(('{}<item type="launcher"><name>{}</name>'
'<command>{}</command></item>').format(spacing,
name, command))
print(spacing + '</menu>')
if submenu:
print('</menu>')
if __name__ == "__main__":
main(sys.argv[1:])

Loading…
Cancel
Save