UPDATE-MENUS(1)

πŸ“¦
version 2.1.51build1 Β· 2 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– UPDATE-MENUS(1) β€” the manual page, but make it a group chat πŸ’–

okay bestie, gather round, because we're talking about update-menus from the General Commands Manual section, and honestly? she's the unpaid intern holding your entire Debian menu system together. no cap. πŸŽ€


✨ NAME ✨

update-menus β€” generate Debian menu system 🌸


✨ SYNOPSIS ✨

update-menus [-v] [-d] [-h|--help] [--version] [--menufilesdir <dir>]
[--menumethod <method>] [--nodefaultdirs] [--stdout]

look at her. little. iconic. πŸ’…


✨ DESCRIPTION ✨

so, storytime 🫢 β€” before update-menus existed, if a sysadmin installed a package on a Debian system, they had to go and manually edit a bunch of window manager config files just so the new program would actually show up in, like, fvwm's menus. exhausting. and of course the menus would drift out of sync with what was actually installed, so you'd get menu items that just... didn't work, plus other programs that had no menu entry at all. 😭 update-menus and Debian's menu package exist to solve exactly that problem. slay.

update-menus automatically generates menus of installed programs for window managers and other menu programs. you should run it whenever a menufile(5) or menu-method file changes. and ngl, it'll also just run automatically when Debian packages containing menu files get installed on or removed from the system. she's proactive like that. ✨

update-menus uses the package-supplied menu entry files (in /usr/share/menu) for its info about the menus β€” but that can be overruled by the system administrator or the user, see below, iykyk. and here's the fun part: if a menu entry file is executable, update-menus executes the menu entry file and uses its stdout to generate the menu database. main character behaviour fr fr. πŸ‘‘


✨ OPTIONS ✨

  • -v β€” Verbose output. Shows all arguments to the /etc/menu-methods programs. she's telling you everything. πŸ—£οΈ
  • -d β€” Debug output. Generates loads of unintelligible output. like, loads. πŸ’€
  • -h, --help β€” Display usage help and exit.
  • --menufilesdir <dir> β€” Adds directory <dir> to the list of directories to search for menu files in.
  • --menumethod <method> β€” Process only the menu method <method> instead of all the menu methods found.
  • --nodefaultdirs β€” Disables the search of menu entries in system menu directories.
  • --nodpkgcheck β€” Do not discard menu entries for packages that are not installed according to dpkg.
  • --remove β€” Remove the menus by calling the menu-methods with --remove.
  • --stdout β€” Output the menu list in a format suitable as input for install-menu or a menu method file.
  • --version β€” Output version information and exit.

✨ CONFIGURATION ✨

there are several ways to tune how update-menus operates, bestie. pick your fighter: πŸŽ€

per menu entry, in /etc/menu/$package

In these directories the system administrator or user can override the default menu files. (If a file /etc/menu/$package exists, then the corresponding /usr/share/menu/$package file isn't read any more.) Users who want to override the system wide defaults put their files in ~/.menu. See also menufile(5).

per window-manager in /etc/menu-methods/$wm

In these configuration files, one can tune generated system.${wm}rc files for each individual window manager. For example, one can specify that the wm should ignore any icons that the packages may supply, or set the default wrapper for text-only applications (usually, an xterm is started to run a text-only application like vi). Users who want to override the system wide defaults put their files in ~/.menu-methods. For more info, see /usr/share/doc/menu/html.

globally, in /etc/menu-methods/translate_menus

This file contains translations that will be performed for all menu entries and all window managers. You can specify things like: All sections that start with "Games" should be mapped to "Applications/Games", or menuentry "gnuplot" should have a title of "GnuTeken". Look at the default /etc/menu-methods/translate_menus for an example. Users who want to override the system default translate file, put one in ~/.menu-methods/translate_menus.

Note: This should not be used for a full translation of the menu. Use po files as explained in the source package. 🚨

error report configuring, in /etc/menu-methods/menu.config

This file contains general information for the overall behaviour of update-menus. At the moment you can only configure how verbose the output of update-menus is, and where it sends the output. The amount of information is specified by verbosity=VAL. Use VAL=quiet to stop update-menu from reporting anything but the most important errors, VAL=normal, VAL=verbose, VAL=debug for progressively more output.

To specify where the output should go, use method=stdout, method=stderr, or method=syslog facility priority. Facility is one of auth, authpriv, authcron, authdaemon, authkern, authlocal0, authlocal1, authlocal2, authlocal3, authlocal4, authlocal5, authlocal6, authlocal7, authlpr, authmail, authnews, authsyslog, authuser, authuucp. priority is one of emerg, alert, crit, err, warning, notice, info, debug.


✨ FILES ✨

Menu files: (Earlier listed directories override those listed later.) the order MATTERS, ok? πŸ¦‹

  • ~/.menu/* β€” Menu files added by the user. (Isn't read if root runs update-menus)
  • /etc/menu/* β€” Menu files added by the system administrator.
  • /usr/lib/menu/* β€” Architecture-dependant menu files provided by other Debian packages.
  • /usr/share/menu/* β€” Architecture-independant menu files provided by other Debian packages.
  • /usr/share/menu/default/* β€” Menu files provided by the menu package.

Menu methods:

  • /etc/menu-methods/ β€” Executable configuration files that are added by window managers and other menu programs, these files are run by update-menus to generate menus for the different programs. Also in this directory is the translate_menus file, used for local configuration of the shape of the menu trees.
  • ~/.menu-methods/ β€” For users to override the system-defaults of /etc/menu-methods. If this directory exists, no files in /etc/menu-methods are read any more.

✨ DISTRIBUTION ✨

Distribution is subject to the GNU General Public License. ⭐


✨ BUGS ✨

update-menus may not work properly when run by a normal user, to generate menus for that user. This is usually because the window manager doesn't expect the system.${wm}rc files in the directory (usually ~/.${wm}, configurable in /etc/menu-methods). If you see such a thing, and you find a solution, please mail <menu@packages.debian.org>. It should work OK for fvwm and fvwm2: I usually test the package first as an ordinary user. πŸ™ˆ

like, she's trying her best, but sometimes the wm is just not ready for her. 😭


✨ AUTHORS ✨

Joost Witteveen <joostje@debian.org>, original idea by Lars Wirzenius <liw@iki.fi>. Now maintained by Bill Allombert <ballombe@debian.org>. πŸ‘‘


✨ THANKS ✨

To Joey Hess, for a lot of good ideas and pre-release testing, and to Tom Lees for a update-menus in pure C (of which I only used one function, but that's life).

Man page by Joey Hess, <joeyh@debian.org> 🫢


✨ SEE ALSO ✨

menufile(5), /usr/share/doc/menu/html


and that's the whole page, bestie! this one comes to you courtesy of DEBIAN, filed under Debian Utilities, and yes the header and footer both say UPDATE-MENUS(1) because she's consistent like that. πŸ’…βœ¨πŸŽ€ go read the source, stan a menu system, periodt. πŸ’–

πŸ“¦ where this page comes from