GLEP 16:Gentoo 菜单系统

作者 Heinrich Wendel <lanius@gentoo.org>
类型 标准跟踪
状态 延迟
版本 1
创建日期 2003-09-09
上次修改日期 2014-01-17
发布历史 2003-10-04, 2003-12-11, 2003-12-13, 2004-05-04, 2004-11-11
GLEP 源代码 glep-0016.rst

定义

APP
应该在菜单中列出的图形应用程序。
WM
包含菜单管理器的程序(例如,可以显示菜单的程序,如窗口管理器)。

摘要

此 GLEP 处理以下两个目标的提案

  • 创建一个通用的菜单布局,该布局独立于 WM。对于使用多个 WM 的用户来说,这一点非常重要。
  • 提供一种将应用程序添加到菜单的通用方法。

状态

超时(现在被 gentoo-desktop 顶级项目所包含)

动机

例如 GNOME、KDE、Fluxbox,它们都有自己处理菜单的方式。用户曾多次请求[1] [2] [3] [4] [5] [6] 简化这些菜单。此外,还有一些关于应用程序没有菜单项的错误报告[7],但由于没有标准的方法来创建此类条目,因此它们只是在 bugzilla 中闲置。

基本原理

通用菜单系统的想法对 Linux 世界来说并不新鲜,每个大型发行版(Debian、Mandrake、RedHat、Suse)都有这样的系统。KDE 和 GNOME 这两个大型桌面环境在 freedesktop.org[8] 的帮助下,也正在尝试实现一个标准。这很可能在 GNOME 2.6 和 KDE 3.2 中实现(目前他们只是实现了桌面条目规范的不同版本,但以不兼容的方式进行解释)。但仍然还有许多其他 WM 目前不支持这些规范。因此,我们试图将我们的工作建立在 GNOME 和 KDE 将要使用的规范基础上。(这些不是正式标准,而是不断发展的规范)。这具有以下优点

  • 遵循指定的标准
  • i18n 支持
  • 提供必要的灵活性和模块化
  • 通过对我们的 ebuild 树进行少量更改来集成。
  • 支持每个系统和每个用户的菜单

规范

我们正在尝试遵循以下规范

  • 桌面条目规范 [9]
  • 菜单规范 [10]
  • 图标主题规范 [11]

有两个库提供了这些规范的 API

  • PyXDG [12](用 Python 编写)
  • 桌面文件实用程序 [13](用 C 编写)

我们的目标是在这些库的帮助下修补 WM 以支持这些规范。然后,APP 只需要安装一个 .desktop 条目[9] 并可选地安装一个图标,它就会出现在所有菜单中。此安装可以通过两个 portage 命令轻松完成(domenu、doicon)。

实现/状态

此 GLEP 已经存在很长时间了,但仍然没有被接受。我将概述当前状态

  • KDE 3.2(x86)支持此规范
  • GNOME 2.6(~x86)支持此规范
  • 必须在 portage 中包含 domenu[12],以便 ebuild 使用它来安装桌面条目
  • 有人需要为其他 WM 编写补丁

我们应该首先专注于为以下 WM 添加支持

  • xfce、blackblox/fluxbox/openbox/waimea/kahakai、icewm
  • fvwm、windowmaker、enlightment、afterstep

以下并不那么重要,但支持某种应用程序菜单

  • aewm/aewm++/evilwm/windowlab/oroborus、amiwm、ctwm、flwm
  • golem、larswm、pekwm、plwm、pwm、qvwm、selectwm、treewm、trwm
  • vtwm、xpde

鸣谢

基于以前在 gentoo bugzilla、邮件列表和论坛上的讨论建议。