[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ next ]


Debian Menu System
Chapter 6 - How a user can override the menus



6.1 Configuring the menus

Users can specify their own menu entries in the ~/.menu directory. The files can have an arbitrary file name as long as the new syntax for the menu entries is used. They should start with either

       ?package(installed-package):

or

       ?package(local.mystuff):

if it's something that isn't ``debian-officially'' installed. (Any ``package'' that starts with ``local.'' is considered installed.)

If users want to have their own menu methods, they should create a ~/.menu-methods directory and put all their menu methods in it. (If ~/.menu-methods exists, /etc/menu-methods will not be searched when a user runs update-menus).

A system administrator should place system-wide menu entries in /etc/menu (not in /usr/share/menu/package, since these files will probably be overwritten by a package upgrade).


6.2 Specifying that a menu entry should not be displayed

If a user wants to remove the entries of package from the system menu then this will do the trick:

       echo -n  > ~/.menu/package

The zero-size file will tell update-menus that the corresponding package should not have any menu entries listed. A system administrator can remove menu entries system-wide with

       echo -n  > /etc/menu/package

6.3 Including other files

Historical comment by Joost:

More out of curiosity than anything else, I recently read the KDE mailing list. In it I saw some discussion about how good the Debian menu system is (whow, thanks, guys!), but one person found a missing feature: s/he said you couldn't include other files in the user menu files. Well, actually, it was already possible, but not very well documented.

To include the contents of the file /usr/share/menu/somefile, add this to your menu file:

     !include /usr/share/menu/somefile

Apart from that, it is of course possible to make the menu entry file executable (chmod a+x ~/.menu/package), and do something like

     #!/bin/sh
     cat  /usr/share/menu/somefile
     sed -e  "/unwanted_entry/s/?package(/?package(notinstalled./" \
          /usr/share/menu/someotherfile

to get the same effect, with the added flexibility of being able to filter out unwanted lines.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ next ]


Debian Menu System

version 1.4, 4 June 2014

Joost Witteveen mailto:joostje@debian.org
Joey Hess mailto:joeyh@debian.org
Christian Schwarz mailto:schwarz@debian.org
Bill Allombert mailto:ballombe@debian.org