A user can specify his/her 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 a user wants to have his/her own menu methods, he/she should create a
~/.menu-methods directory and put all scripts he/she wants to be
run 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/lib/menu/package, since these
files will probably be overwritten by a package upgrade).
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 file
/usr/lib/menu/somefile, add this to your menu file:
!include /usr/lib/menu/somefile
Apart form 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/lib/menu/somefile
sed -e "/unwanted_entry/s/?package(/?package(notinstalled./" \
/usr/lib/menu/someotherfile
to get the same effect, with the added flexibility of being able to filter out
unwanted lines.