Subject: Re: RFC: generating menus from packages
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 09/03/2002 10:45:14
Thanks for the questions. My clarifications are below.

On Tue, 3 Sep 2002, Klaus Heinz wrote:

> > 1) Should all menu entries be placed in single file or per package (that
> > supports it)? I think it should be separate files.
>
> Won't the entries be placed in menu files for *wm?

No. The menu entries are just generic -- so they can be used by any script
to generate different types of menus.

Also, they are just generic and not automatically placed in the
individual window manager's menu file, because they may need to be reused,
for example, you may later decide to switch window managers, and you
wouldn't want to have some script to try to parse your current window
manager's menu format.

In addition, a user may want to customize their own menus (and it would be
easier than trying to parse from an already existing menu).

In fact, someone could choose to have menus without even having a window
manager installed.

As for the specific window managers, for example, if the icewm menu
generating script could just use all menu entries to make its own icewm
menu (which could be included by the default icewm menu or an user's icewm
menu).

> > 5) Also optional: a brief description (because some window managers
> > may show) and long title (because some window managers may display).
>
> Could there be some way to have descriptions in different languages?
> I guess the *NIX desktops KDE and GNOME support non-English languages,
> too (never used them myself).

I never thought about that. An admin or users could create their own menu
entry files to override the settings.

But at this time, even pkgsrc is not multi-language: the DESCRiptions and
COMMENTs (and MESSAGEs) for a single package are only in a single
language.

> > entries it would become quite overwhelming. But it could just simply use
> > our standard package categories. What do you think?
>
> If the hierarchy of pkgsrc directories is supposed to make sense to the
> pkgsrc user I would conclude it should also make sense in a menu
> system. Will there be a way to override this default structure?

Good point. But if you installed many games, you wouldn't want to have
80+ games in a single "games" menu.

It could have a way to override the categories. Maybe if it was
"category/subcategory", there could be an option to always ignore the
subcategory.

In addition, the (default) subcategory would be chosen by the package
maintainer.

Another idea is to provide task oriented menu entries instead of or in
addition to having menu items listed by software name. For example, a menu
entry that says "Spreadsheet" would really run gnumeric; and "E-mail"
would really run sylpheed. (This could be done with the PROVIDES mechanism
briefly discussed in another posting.)

> > 12) I think the menu entries for packages should be saved in only one
> > place. But it would be okay if in multiple places too. Where do you think?
> > /var/pkg/something? /usr/X11R6/etc/package-menus/?
> > /usr/pkg/etc/package-menus?
>
> What are 'menu entries' here? I thought the entries were lines like
> 'MENU=...' in the package Makefile.

Yes. The menu entries are just the lines like:

Title:category:Type:/path/to/program

Or with all options:

Brief title:category:Type:/path/to/executable:/path/to/executable --with
--suggested --options --for --X:Some longer title or short description
here:A longer description here.

Note: this can be used for documentation or non-executables too by simply
running the appropriate viewer.

> Or does this refer to the location
> where the menu files for the window managers (containing the
> transformed menu entries of all installed packages) should live?

No. That could be something like:

/usr/X11R6/lib/X11/icewm/package-menu (a single file)

/usr/X11R6/share/blackbox/package-menu (a single file)

(Which could be simply included by the user's or the system-wide menu
file.)

   Jeremy C. Reed
   http://bsd.reedmedia.net/