Debian Menu System - How a user can override the menus

[ 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