Latest current version is 0.99.6
Previous stable version is 0.17
What is MenuMaker?
MenuMaker is a menu generation utility. It is capable of
finding lots of installed programs and generating a root menu
consistent across all supported X window managers, so one will get
(almost) the same menu no matter what window manager is
selected. It is pure Python
application hence it runs on every relevant system.
Supported X window managers (As of 0.99.6)
- OpenBox, version 3
- XFCE, version 4
The easiest way is to get the source distribution, unpack it into a temporary directory and perform the usual ./configure; make; make install sequence. It is not required however as MenuMaker runs off the source tree as well.
The MenuMaker's command-line driver is called mmaker.
The simplest MenuMaker invokation form is as follows:
This command employs all available algorithms to find all installed
applications and dumps a fully usable and consistent menu into the
specified window manager's default menu file.
For the full list of available options consult mmaker's online help
- Verbosity is controlled via -v option. Specify it twice to get tons of debug output. MenuMaker runs silently by default.
- Default policy is not to overwrite any existing files so there is less chance to kill valuable hand-crafted menu. To force overwriting files use -f flag.
- Default MenuMaker operation is to dump menu to WM-specific file inside user's home. Use -c flag to redirect this output to stdout. Useful for writing system-wide menus.
- By default, MenuMaker generates fully formed and usable menu. To get only the part containing the applications found use -i flag. This output can be then #include'd into your custom frame menu. Note that this will not be a valid menu hence -c must also be specified (this is to forward the chunk to elsewhere).
- By default, MenuMaker tries to eliminate the paths to executables wherever possible (for example, when an application can be found in PATH). To suppress this and always retain full paths use -p flag. Useful for debugging.
- To specify the terminal emulator to run console applications use -t flag.
- Flags started with --no- disable specific search algorithms.
- -s is used to specify unwanted categories to omit from menu.
Implemented search algorithms
Currently there are three algorithms that are in use by MenuMaker:
- Prophet knowledge base. This is the build-in set of rules for
resolving the most tricky situations like legacy applications - for
example, those without the corresponding .desktop files.
.desktop files. Extensively used by modern integrated
environments, GNOME, KDE and XFCE. However, few stand-alone
applications have such files, so this is yet to be adopted as a
- Debian GNU/Linux application
entries. Debian project maintains a huge set of ported applications and
its packagers are obligated to maintain a corresponding menu entry (for
the program worth to be added into menu). MenuMaker contains a cached
copy of the database to check system against. This is the least
accurate algorithm, but sometimes it can find the programs not picked
by the above two.
The latest MenuMaker can be downloaded from
Send your comments and suggestions to
Steve Fullenwider <firstname.lastname@example.org>