diff --git a/src/xdgmenumaker b/src/xdgmenumaker index d3d4bf9..17fa610 100755 --- a/src/xdgmenumaker +++ b/src/xdgmenumaker @@ -201,6 +201,8 @@ def main(argv): blackbox() elif desktop == "fluxbox": fluxbox() + elif desktop == "fvwm": + fvwm() elif desktop == "windowmaker": seticon = False windowmaker() @@ -223,7 +225,7 @@ def usage(): print('OPTIONS:') print(' -f, --format the output format to use.') print(' Valid options are blackbox, compizboxmenu,') - print(' fluxbox, icewm, jwm, windowmaker and pekwm') + print(' fluxbox, fvwm, icewm, jwm, windowmaker and pekwm') print(' -i, --icons enable support for icons in the') print(' menus. Does not work with windowmaker') print(' -s, --size preferred icon size in pixels (default: 16)') @@ -487,6 +489,61 @@ def fluxbox(): if submenu: print('[end] # ({})'.format(apps_name)) +def fvwm(): + if submenu: + print('DestroyMenu "xdgmenu"') + print('AddToMenu "xdgmenu"') + if seticon: + app_icon = icon_full_path(applications_icon) + if app_icon: + print('+ "{a}%{i}% " Title'.format(a=apps_name, i=app_icon)) + else: + print('+ "{a}" Title'.format(a=apps_name)) + app_icon = icon_full_path(applications_icon) + for menu_category in menu(): + category = menu_category.category + cat_name = category.decode() + cat_icon = category_icon(category) + cat_icon = icon_full_path(cat_icon) + if cat_icon: + print('+ "{c}%{i}%" Popup "{c}"'.format(c=cat_name, + i=cat_icon)) + else: + print('+ "{c}" Popup "{c}"'.format(c=cat_name)) + else: + for menu_category in menu(): + category = menu_category.category + cat_name = category.decode() + print('+ "{c}" Popup "{c}"'.format(c=cat_name)) + print() + for menu_category in menu(): + category = menu_category.category + cat_name = category.decode() + print('DestroyMenu "{}"'.format(cat_name)) + print('AddToMenu "{c}"'.format(c=cat_name)) + if seticon: + cat_icon = category_icon(category) + cat_icon = icon_full_path(cat_icon) + if cat_icon: + print('+ "{c}%{i}%" Title'.format(c=cat_name, i=cat_icon)) + else: + print('+ "{c}" Title'.format(c=cat_name)) + else: + print('+ "{c}" Title'.format(c=cat_name)) + for app in menu_category.applist: + name = app.name.decode() + icon = app.icon + command = app.command + path = app.path + if path is not None: + command = 'cd {p} ; {c}'.format(p=path, c=command) + if icon is None: + print('+ "{n}" Exec {c}'.format(n=name, c=command)) + else: + print('+ "{n}%{i}%" Exec {c}'.format(n=name, + c=command, + i=icon)) + print() def windowmaker(): print('"{}" MENU'.format(apps_name))