XdgMenu
From ArchWiki
Contents |
XDG menu
xdg-menu - generates menus for
- twm
- ion3
- WindowMaker
- fvwm2
- icewm
- blackbox
- fluxbox
- openbox
from XDG stuff. KDE, Gnome, Xfce, Enlightenment are already XDG compatible. For further information see:
Usage
xdg_menu
xdg_menu [--format <format>] [--desktop <desktop>]
[--charset <charset>] [--language <language>]
[--root-menu <root-menu>] [--die-on-error]
[--fullmenu] [--help]
format - output format
possible formats: twm, WindowMaker, fvwm2, icewm, ion3
blackbox, fluxbox, openbox,
xfce4, openbox3, openbox3-pipe,
readable
default: WindowMaker
fullmenu - output a full menu and not only a submenu
desktop - desktop name for NotShowIn and OnlyShowIn
default: the same as format
charset - output charset
default: <locale>
language - output language
default: <locale>
root-menu - location of root menu file
default: /opt/gnome/etc/xdg/menus/applications.menu
die-on-error - abort execution on any error,
default: try to continue
verbose - print debugging information
help - print this text
update-menus
update-menus updates WMs menus from XDG stuff and can do it automaticaly using config.
You need to install package: archlinux-xdg-menu
/etc/update-menus.conf contains list of window managers which menu should be generated. Comments with # are allowed.
All generated menus placed in /var/cache/xdg-menu/. See wm-specific Examples section of this page to get more information.
Examples
IceWM
With xdg_menu
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu >>~/.icewm/programs
With update-menus
- Uncomment icewm in /etc/update-menus.conf
- run update-menus as root
- make symlink to /var/cache/xdg-menu/icewm/programs in ~/.icewm/programs
Ion3
With xdg_menu
$ xdg_menu --format ion3 --root-menu /etc/xdg/menus/arch-applications.menu >~/.ion3/default-session--0/_xdg-menu.lua
After that, change your cfg_menus.lua to include _xdg-menu.lua file and add menu into mainmenu. For example:
...
dopath("_xdg-menu")
-- Main menu
defmenu("mainmenu", {
submenu("XDG Menu", "<NAME-OF-FIRST-MENU-IN-_xdg-menu.lua-FILE>"),
submenu("Programs", "appmenu"),
menuentry("Lock screen", "ioncore.exec_on(_, 'xlock')"),
menuentry("Help", "mod_query.query_man(_)"),
menuentry("About Ion", "mod_query.show_about_ion(_)"),
submenu("Styles", "stylemenu"),
submenu("Session", "sessionmenu"),
})
...
With update-menus
- Uncomment ion3 in /etc/update-menus.conf
- run update-menus as root
- change your cfg_menus.lua to include xdg-menu.lua file and add menu into mainmenu.
For example:
...
dopath("/var/cache/xdg-menu/ion3/xdg-menu.lua")
-- Main menu
defmenu("mainmenu", {
submenu("XDG Menu", "<NAME-OF-FIRST-MENU-IN-xdg-menu.lua-FILE>"),
submenu("Programs", "appmenu"),
menuentry("Lock screen", "ioncore.exec_on(_, 'xlock')"),
menuentry("Help", "mod_query.query_man(_)"),
menuentry("About Ion", "mod_query.show_about_ion(_)"),
submenu("Styles", "stylemenu"),
submenu("Session", "sessionmenu"),
})
...
FluxBox
With xdg_menu
$ xdg_menu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu >~/.fluxbox/my-menu
Change your menu file to include generated menu.
For example add line:
[include] (my-menu)
With update-menus
- Uncomment fluxbox in /etc/update-menus.conf
- run update-menus as root
- change your menu file to include generated menu.
For example add line:
[include] (/var/cache/xdg-menu/fluxbox/boxrc)
OpenBox
With xdg_menu
Generate menu with
$ xdg_menu --format openbox3 --root-menu /etc/xdg/menus/arch-applications.menu >xdg-menu.xml
and manualy add it into your menu.xml. For example, put xdg-menu.xml into menu.xml and add:
<menu id="Applications" />
into root-menu.
With update-menus
- Uncomment openbox in /etc/update-menus.conf
- run update-menus as root
- change your menu.xml file to include generated menu.
For example, add following to root-menu:
<menu id="xdg-menu" label="XDG Menu" execute="cat /var/cache/xdg-menu/openbox/menu.xml"/>
Twm
With xdg_menu
Use
$ xdg_menu --format twm --root-menu /etc/xdg/menus/arch-applications.menu >my-twm-menu
and add it into twmrc manualy.
(I don't know how to include files into twmrc sergej 10:50, 11 April 2007 (EDT))
With update-menus
- Uncomment twm in /etc/update-menus.conf
- Add into /etc/X11/twm/system.twmrc file applications menu (add following line:
"apps" f.menu "Applications"
into defops menu)
- run update-menus as root
- run twm -f /var/cache/xdg-menu/twm/twmrc
WindowMaker
With xdg_menu
Use
$ xdg_menu --format WindowMaker --root-menu /etc/xdg/menus/arch-applications.menu >my-wm-menu
and add
#include "my-wm-menu"
into your WindowMaker menu file.
With update-menus
- Uncomment WindowMaker in /etc/update-menus.conf
- run update-menus as root
- add
#include "/var/cache/xdg-menu/WindowMaker/wmrc"
into your menu file.
Fvwm2
With xdg_menu
Generate menu
$ xdg_menu --format fvwm2 --root-menu /etc/xdg/menus/arch-applications.menu >fvwm2-menu
and add menu into root menu
read fvwm2-menu AddToMenu MenuFvwmRoot "Root Menu" Title + "&0. XDG Menu" Popup xdg_menu
With update-menus
- Uncomment fvwm2 in /etc/update-menus.conf
- run update-menus as root
- change your .fvwm2rc file to include generated menu. For example:
AddToMenu MenuFvwmRoot "Root Menu" Title + "&0. XDG Menu" Popup xdg_menu
read /var/cache/xdg-menu/fvwm2/fvwm2rc
BlackBox
With xdg_menu
$ xdg_menu --format blackbox --root-menu /etc/xdg/menus/arch-applications.menu >my-menu
Change your menu file to include generated menu.
For example add line:
[include] (my-menu)
With update-menus
- Uncomment blackbox in /etc/update-menus.conf
- run update-menus as root
- change your menu file to include generated menu.
For example add line:
[include] (/var/cache/xdg-menu/blackbox/boxrc)