Skip to content

d-torrance/wmgmenu

Repository files navigation

license badge workflow badge release badge

wmgmenu

wmgmenu is a small application that uses gnome-menus (or one of its various forks) to produce a proplist menu for Window Maker that follows the freedesktop.org Desktop Menu Specification.

Usage

To use wmgmenu, edit ~/GNUstep/Default/WMRootMenu to include a line such as:

(Applications, OPEN_PLMENU, "|| wmgmenu"),

Alternatively, using WPrefs, navigate to "Applications Menu Definition", drag "Generated PL Menu" to the menu that pops up, enter "wmgmenu" under "Command", and then click "Save".

Note that gtk-launch is used to launch each application from the menu.

By default, wmgmenu will load ${XDG_MENU_PREFIX}applications.menu. If you would like to load another file, then you may specify it with the -f or --filename commandline arguments, e.g.,

wmgmenu -f /etc/xdg/menus/mate-settings.menu

If the file exists in the menus subdirectory of the user or system configuration directories (by default, ~/.config or /etc/xdg and possibly given by the XDG_CONFIG_HOME and XDG_CONFIG_DIRS environment variables -- see the XDG Base Directory Specification for more information), then a full path need not be given. For example:

wmgmenu -f mate-settings.menu

There are also a number of commandline options that set flags used by gnome-menus to determine how it decides which entries to include in the menu and in what order.

  • -x, --include-excluded: Include excluded entries.
  • -n, --include-nodisplay: Include entries marked 'NoDisplay'.
  • -u, --include-unallocated: Include unallocated entries.
  • -e, --show-empty: Show empty directories.
  • -s, --sort-display-name: By default, gnome-menus determines how to sort an entry based on the Name given in its .desktop file. With this flag set, it uses X-GNOME-FullName instead, falling back to Name if this key doesn't exist. Note that X-GNOME-FullName is not very common, and setting this flag will likely have little to no effect.

Finally, several commandline options can be used to print information about wmgmenu instead of the proplist menu.

  • -h, --help: Show help options.
  • -v, --version: Print the version number.
  • -p, --path: Print the path to the .menu file that is loaded.
  • -l, --library: Print the menu library that wmgmenu is using (gnome-menus, cinnamon-menus, or mate-menus).

Installing

wmgmenu is available in Ubuntu using a PPA:

sudo add-apt-repository ppa:profzoom/dockapps
sudo apt install wmgmenu

Building

Prerequisites:

If building from a tarball from the releases page, then unpack it, change to the corresponding directory, and run:

./configure
make
sudo make install

If building from a git repository, first run

./autogen.sh

and then proceed as above.

Alternatively, wmgmenu can be built using cinnamon-menus or mate-menus instead of gnome-menus. To do this, start with

./configure --with-cinnamon-menus

or

./configure --with-mate-menus

and then proceed as above.

Test suite

The test suite uses Bats. It expects to find some menu files on the system:

  • a default menu file (${XDG_MENU_PREFIX}applications.menu),
  • /etc/xdg/menus/gnome-applications.menu, for testing the -f commandline option, and
  • e-applications.menu (the Enlightment menu), for testing XDG_MENU_PREFIX support with a non-default value.

To run the test suite:

make check

Bug reports

Found a bug? Open an issue at https://github.com/d-torrance/wmgmenu.