Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A command line tool that generates XDG menus for several window managers

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 desktop-directories
Octocat-spinner-32 man
Octocat-spinner-32 src Force the use of tuple when parsing --pekwm-dynamic February 13, 2014
Octocat-spinner-32 AUTHORS
Octocat-spinner-32 COPYING Added COPYING file February 09, 2012
Octocat-spinner-32 INSTALL
Octocat-spinner-32 README
Octocat-spinner-32 install.sh
README
=====
ABOUT
=====

xdgmenumaker is a command line tool, written in python, that generates
application menus using xdg information, by scanning *.desktop files
in all $XDG_DATA_DIRS/applications directories. All applications are
sorted according to the main categories as specified by freedesktop.org
at:
http://standards.freedesktop.org/menu-spec/latest/apa.html

The menu entries that are generated by xdgmenumaker are localised
according to the running user locale settings.

xdgmenumaker currently supports generating menus for fluxbox, icewm,
pekwm and windowmaker.

pyxdg and pygtk are required by xdgmenumaker, in addition to python 2.

=======
Fluxbox
=======

To generate an application menu for fluxbox, run xdgmenumaker like this:

  $ xdgmenumaker -f fluxbox > ~/.fluxbox/xdg_menu

and then change your main fluxbox menu to include this file as a
submenu. For example, add this somewhere in your ~/.fluxbox/menu file:

  [include] (~/.fluxbox/xdg_menu)

You can add the xdgmenumaker command as another item in your menu, if
you want to update it, without having to run the command manually again:

  [exec] (Update Fluxbox Menu) (xdgmenumaker -f fluxbox > ~/.fluxbox/xdg_menu)

=====
IceWM
=====

To generate an application menu for icewm, run xdgmenumaker like this:

  $ xdgmenumaker -f icewm > ~/.icewm/appmenu

or if you want icons in your menu:

  $ xdgmenumaker -i -f icewm > ~/.icewm/appmenu

and you can then edit your ~/.icewm/menu file and add this line
somewhere:

  include appmenu

You can add the xdgmenumaker command as another item in your menu, if
you want to update it, without having to run the command manually again:

  prog "Update Menu" _none_ xdgmenumaker -i -f icewm > ~/.icewm/appmenu

NOTE: If you don't request icons in the menu, or if an icon is not found
for a certain app, the icon name in the menu for that app is set to
"_none_". This doesn't actually set the icon for that app to none. Icewm
menu entries should always include an icon. So, by pointing it to a
non existing icon, you essentially set it to use no icon. If you
actually have an icewm icon named "_none_", that one will be used
instead.

=====
pekwm
=====

There are two ways to have an XDG menu in pekwm. The first one,
auto-updates the menu, every time the menu is called. The second one,
updates the menu only when the user wants to.

Dynamic Menus
-------------

Edit your ~/.pekwm/menu file with your favourite text editor and add
a like like the following one in the location that you want the
dynamically generated menu to appear:

  Entry = "" { Actions = "Dynamic /usr/bin/xdgmenumaker -n -i -f pekwm --pekwm-dynamic" }

Restart pekwm and the generated menu should appear. The menu will be
automatically generated every time you access it, so it will always be
up to date. But since xdgmenumaker will run every time you access the
menu, the menu might not appear instantly, especially if you are using
an older PC.

Static Menus
------------

Run:

  $ xdgmenumaker -n -i -f pekwm > ~/.pekwm/appsmenu

to create a file with the menu contents. Then edit your
~/.pekwm/menu file to include that menu, by adding a line like the
following, in the location that you want the menu to appear:

  INCLUDE = "/home/your_user_name/.pekwm/appsmenu"

Restart pekwm and the generated menu should appear. The menu is static
and if you add/remove any applications, you will have to run the
xdgmenumaker command and restart pekwm all over again to update it. The
advantage is that there will be no delay in displaying the menu.


============
Window Maker
============

There are two ways to have an xdg menu in windowmaker. The first one,
auto-updates the menu, every time the menu is called. The second one,
updates the menu only when the user wants to.

xdgmenumaker uses utf8 encoding and localised strings by default and has
been tested only with wmaker-crm>=0.95.1. No idea if utf8 works properly
with older Window Maker versions.

Method 1
--------

Open the WindowMaker preferences tool. In the Application Menu
Definition section, add a Generated Submenu in your menu, by dragging it
in. Click on the menu item you just dragged in and in the preferences
window, in Command, add:

  xdgmenumaker -f windowmaker

Save and close the preferences window.

That command will be run every time you access that submenu, so the
application list in there will be always up to date. The downside is
that it will be run every time you access that submenu, so especially if
you are on a very old PC, it might slow things down a bit, although
probably not anything considerable.

Method 2
--------

Run

  $ xdgmenumaker -f windowmaker > ~/GNUstep/Defaults/xdg_menu

Then open the WindowMaker preferences tool and in the Application Menu
Definition section, add an External Submenu by dragging it in your menu.
Click on the menu item you just dragged in and in the preferences
window, in Path for Menu, add the location of the menu file you just
created:

  ~/GNUstep/Defaults/xdg_menu


You can add the xdgmenumaker command as another item in your menu, if
you want to update it, without having to run the command manually again.
In the Application Menu Definition section in the WindowMaker
preferences window, add a Run Program item in your menu by dragging it
your menu. Click on the menu item you just dragged in and in the
preferences window, in Program to Run, add the xdgmenumaker command as
mentioned above.

The downside of this method, is that the menu contents will not be
updated when you install a new application or remove one. You will need
to run the xfgmenumaker command every time you want the menu to be
updated. The upside is that the menu will not be generated every time
you access the menu. This might be a better choice for (really) older
hardware.


Something went wrong with that request. Please try again.