(menu.info)Chapter 1


Next: Chapter 2 Prev: Top Up: Top
Enter node , (file) or (file)node

1 Introduction
**************

Before the advent of 'update-menus', when the sysadmin installed a
package onto a Debian system, they would need to edit various window
manager config files to make the new program show up on, for example,
'fvwm''s menus.  The menus could easily become out of sync with what
programs were actually available, with some menu items that didn't work,
and other programs that lacked a menu entry.  update-menus and Debian's
menu package aim to solve this problem.

'update-menus' automatically generates menus of installed programs for
window managers and other menu programs.  It should be run whenever a
menu file or menu-method file is changed.  'update-menus' will be ran
automatically when Debian packages that contain menu files are installed
or removed from the system.  Users themselves can add/delete menu items,
and should then run 'update-menus' as that user, thus creating
window-manager startup files that are used in preference to the
systemwide files.

One problem we ran into with menu-1.x (and before) was that the number
of entries in any submenu vary wildly: on my system there are only two
entries in '/Applications/Editors', while I'm sure that other people
have more like 20 entries there.  Many people complained about the
fullness of certain submenus, citing scientific studies or personal
experience to explain why overfull or underfull submenus are a bad
thing.  To overcome this, menu-2.0 now can optimize the tree itself,
possibly subdividing for example the '/Applications/Editors' tree in,
say 'Editors/Beginner', 'Editors/Experienced', or whatever, if there are
many entries in that submenu, or maybe even totally removing
'/Applications/Editors' on systems where there are few editors
installed.  To be able to do this, menu follows the information supplied
to it in the 'hints' variables (see paragraph below, or the hints
chapter).

Each package that needs to add an entry to the menu tree, includes a
menu file '/usr/share/menu/package-name'.  In this file, it will have
one line per menu entry, like this (copied from
'/usr/share/menu/xbase'):

        ?package(xbase):command="/usr/bin/xedit" needs="X11" \
                     section="Applications/Editors" title="Xedit" \
                     hints="Beginner,Small"

This describes the type of interface Xedit needs (X11), the menu section
the menu entry should be in, the menu text, and the command that should
be executed.  Also, it tells menu that, if '/Applications/Editors' is
overfull, it could put Xedit in a 'Applications/Editors/Beginner' or
'Applications/Editors/Small' subsection.

Whenever 'root' runs 'update-menus', it will check all menu files in
'/etc/menu', '/usr/lib/menu', '/usr/share/menu', and run the
installation scripts that display managers like 'fvwm2' should provide
in '/etc/menu-methods'.

The menu package itself provides a set of default menu files, for people
to get the idea, and to speed up things a bit.  (These files should be
incorporated into the package.)

Note, that substantial and incompatible changes took place with the
menu-1.0 release, while substantial features were added by the release
of menu-2.0.  This document describes menu-2.0.  Menu-2.0 now doesn't
accept the menu-methods written for menu-0.x, but for most window
managers that still have those old menu-methods, I have put new style
menu-methods in /usr/share/doc/menu/examples.  Everything written for
menu-1.0 will work with menu-2.0.

Most notable changes between menu-0.x and menu-1.x are listed in the
file README.changes in the menu package, the features added by menu-2.0
can be summarised here: hints, and the menu-2 compat mode.  (where lines
are finished by a ';' instead of a newline).


automatically generated by info2www version 1.2.2.9