Parse and rebuild FVWM configuration files to build a clean menu from them: application not in the path are removed, certain unuseful sub menus and separator are removed (--build-menus option).
It can work in a locked way and communicate (via fvwm-themes-com) with FvwmScript-Menus or any other programs (--com-mode option). See below for the list of query that you can ask to fvwm-themes-menuapp via fvwm-themes-com.
Plan for the future: use an application data base and parse and build (Mini)Icon Styles.
--help - show the help and exit
--version - show the version and exit
--build-menus - Cause fvwm-themes-menuapp to build clean menus.
--com-mode Run fvwm-themes-menuapp under the "communication mode".
--menu-files [file1,file2,...] - files which are read and written by fvwm-themes-menuapp. By default, fvwm-themes-menuapp will read $FT_DATADIR/themes/default/menus-programs with the --site option. Without the --site option fvwm-themes-menuapp will read menus-programs and menus-extra (if found) in the fvwm-themes personal dir: $FVWM_USERDIR/themes/personal. If menus-programs is not found in this directory the site's menus-programs file is used (the one under $FT_DATADIR). Moreover, if menus-extra is not found, a virtual such file is created so that the "personal" menus can be created (MenuFvwmPersonal) in it.
--site - Change the default for the --menu-files option.
--remove-popup - Remove the sub menu popup that popup empty menu (only useful with --build-menus). In fact only certain sub menu popup are removed.
--com-name name - use name as name for communication with fvwm-themes-com. By default, "appmenu" is used, but you should use "appmenu-pid" as name where pid is the pid of the program that want to talk to fvwm-themes-menuapp so that fvwm-themes-menuapp can exit if this program exit and so that fvwm-themes-menuapp can kill the program if an internal error happen in fvwm-themes-menuapp. On the other hand, if you want to talk with fvwm-themes-menuapp in, say, a terminal you must not give an name as "menuapp-an_integer" as name.
fvwm-themes-menuapp --com-mode [--com-name=menuapp-pid ...]
Then use fvwm-themes-com as:
fvwm-themes-com --name menuapp[-pid] [--lock-and-get] --message="Command"
where Command is one of the following. All this commands are "lock and get" but the exit command. A return value of 0 indicate an error.
menus-list - List of the menus.
root-menus-list - List of the "root" menus.
root-menus i - ith root menu.
menu-items menu_name - List of the items of the menu menu_name.
item menu_name:i - Information on the ith item of the menu menu_name.
remove menu_name:i - Remove the ith item of the menu menu_name.
move-up menu_name:i - Move up the ith item of the menu menu_name.
move-down menu_name:i - Move down the ith item of the menu menu_name.
add-or-edit-item X --it='menu_name:i' --t='type' --n='name' --mi='menu-icon' --wd='working dir or window title' where X is either A for add or E for edit, see the code for details :)
selection-items - List of the items in the selection.
add-item-to-selection menu_name:i - Add the ith item of the menu menu_name to the selection.
remove-sel-item i - Remove the ith item of the selection.
remove-all-sel-item - Remove all the selection items.
copy-sel-item menu_name:i:j - Copy the jth item of the selection after the ith item of the menu menu_name.
copy-all-sel menu_name:i - Copy all the selection after the ith item of the menu menu_name.
try - Out put the contents of the files (as soon as possible will run the good fvwm-themes-config command).
save - wrote back the files
exit - Stop fvwm-themes-menuapp.
fvwm-themes-menuapp --site --build-menus --remove-popup
FvwmScript-Menus used (and in fact is based on) fvwm-themes-menuapp. See this FvwmScript script for examples with the com-mode option.