You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
5.2 KiB
172 lines
5.2 KiB
xdgmenumaker
|
|
George Vlahavas
|
|
%%mtime(%m/%d/%Y)
|
|
|
|
%!target: man
|
|
%!encoding: utf-8
|
|
|
|
= NAME =
|
|
|
|
xdgmenumaker - generate XDG menus
|
|
|
|
|
|
= SYNOPSIS =
|
|
|
|
**xdgmenumaker** [//OPTIONS//]
|
|
|
|
|
|
= DESCRIPTION =
|
|
|
|
**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 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// and //windowmaker//.
|
|
|
|
pyxdg and pygtk are required by **xdgmenumaker**, in addition to python 2.
|
|
|
|
|
|
= OPTIONS =
|
|
|
|
: **-f, --format**
|
|
specify the output format to use. Valid options are //fluxbox//,
|
|
//icewm// and //windowmaker//. Specifying the output format is
|
|
mandatory.
|
|
|
|
: **-i, --icons**
|
|
enable support for icons in the menus. Only works with //fluxbox// and
|
|
//icewm//.
|
|
|
|
: **-n, --no-submenu**
|
|
do not create a submenu. Instead, place the application categories menus
|
|
in the window manager's main menu. Only works with //fluxbox// and
|
|
//icewm//.
|
|
|
|
|
|
= GENERAL OPTIONS =
|
|
|
|
: **-h**
|
|
Prints a usage message briefly summarizing all command-line options
|
|
and exits.
|
|
|
|
|
|
= USAGE =
|
|
|
|
: **Fluxbox**
|
|
|
|
To generate an application menu for Fluxbox, you can 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.
|
|
|
|
: **WindowMaker**
|
|
|
|
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 WindowMaker 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 with running this command every time, especially if
|
|
you are on a very old PC, it might slow things down a bit. Even then it
|
|
is 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 above mentioned **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.
|
|
|
|
|
|
= WEBSITE =
|
|
|
|
https://github.com/gapan/xdgmenumaker
|
|
|
|
|
|
= AUTHORS =
|
|
|
|
**xdgmenumaker** was written by George Vlahavas <vlahavas~at~gmail~dot~com>
|
|
|