|
|
@ -1,61 +1,59 @@ |
|
|
|
===== |
|
|
|
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 |
|
|
|
**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, |
|
|
|
jwm, pekwm and windowmaker. |
|
|
|
xdgmenumaker currently supports generating menus for **fluxbox**, |
|
|
|
**icewm**, **jwm**, **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 |
|
|
|
$ 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) |
|
|
|
[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) |
|
|
|
[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 |
|
|
|
$ xdgmenumaker -f icewm > ~/.icewm/appmenu |
|
|
|
|
|
|
|
or if you want icons in your menu: |
|
|
|
|
|
|
|
$ xdgmenumaker -i -f icewm > ~/.icewm/appmenu |
|
|
|
$ xdgmenumaker -i -f icewm > ~/.icewm/appmenu |
|
|
|
|
|
|
|
and you can then edit your ~/.icewm/menu file and add this line |
|
|
|
somewhere: |
|
|
|
|
|
|
|
include appmenu |
|
|
|
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 |
|
|
|
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 |
|
|
@ -65,31 +63,30 @@ 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. |
|
|
|
|
|
|
|
=== |
|
|
|
|
|
|
|
JWM |
|
|
|
=== |
|
|
|
|
|
|
|
You can edit your ~/.jwmrc file and add a line that generates the |
|
|
|
applications menu, like this: |
|
|
|
|
|
|
|
<Include>exec: xdgmenumaker -n -i -f jwm</Include> |
|
|
|
<Include>exec: xdgmenumaker -n -i -f jwm</Include> |
|
|
|
|
|
|
|
You need to put that line somewhere in the //RootMenu// section of the |
|
|
|
~/.jwmrc file. |
|
|
|
|
|
|
|
You can update the menu with: |
|
|
|
|
|
|
|
$ jwm -reload |
|
|
|
$ jwm -reload |
|
|
|
|
|
|
|
Or you can restart JWM and the updated menu should appear. The menu will be |
|
|
|
recreated every time JWM is started, restarted, or when the menu is |
|
|
|
reloaded with the above command. You can even add a menu item that will |
|
|
|
refresh the menu, like this: |
|
|
|
|
|
|
|
<Program label="Refresh Menu">jwm -reload</Program> |
|
|
|
<Program label="Refresh Menu">jwm -reload</Program> |
|
|
|
|
|
|
|
|
|
|
|
===== |
|
|
|
pekwm |
|
|
|
===== |
|
|
|
|
|
|
@ -104,7 +101,7 @@ 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" } |
|
|
|
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 |
|
|
@ -117,13 +114,13 @@ Static Menus |
|
|
|
|
|
|
|
Run: |
|
|
|
|
|
|
|
$ xdgmenumaker -n -i -f pekwm > ~/.pekwm/appsmenu |
|
|
|
$ 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" |
|
|
|
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 |
|
|
@ -131,7 +128,6 @@ 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 |
|
|
|
============ |
|
|
|
|
|
|
@ -151,7 +147,7 @@ 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 |
|
|
|
xdgmenumaker -f windowmaker |
|
|
|
|
|
|
|
Save and close the preferences window. |
|
|
|
|
|
|
@ -164,9 +160,9 @@ probably not anything considerable. |
|
|
|
Method 2 |
|
|
|
-------- |
|
|
|
|
|
|
|
Run |
|
|
|
Run: |
|
|
|
|
|
|
|
$ xdgmenumaker -f windowmaker > ~/GNUstep/Defaults/xdg_menu |
|
|
|
$ 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. |
|
|
@ -174,7 +170,7 @@ 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 |
|
|
|
~/GNUstep/Defaults/xdg_menu |
|
|
|
|
|
|
|
|
|
|
|
You can add the xdgmenumaker command as another item in your menu, if |
|
|
|