summaryrefslogtreecommitdiff
blob: e2ed232a8df291df287ad4ab4dd16c7215e0bde1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
---
GLEP: 16
Title: Gentoo Menu System
Author: Heinrich Wendel <lanius@gentoo.org>
Type: Standards Track
Status: Deferred
Version: 1
Created: 2003-09-09
Last-Modified: 2014-01-17
Post-History: 2003-10-04, 2003-12-11, 2003-12-13, 2004-05-04, 2004-11-11
Content-Type: text/x-rst
---

Definitions
============

   *APP*
      A graphical application that should be listed in the menus.
   *WM*
      A program containing a menu manager (i.e. a program that can display a menu, e.g. a windowmanager).



Abstract
========

This GLEP handles a proposal for the following two goals:

* Create a common menu layout, which would be independent of the WM.
  This point is quite important for those people who use more than one WM. 
* Provide a common way to add applications to the menus.


Status
======

Timed out (and now subsumed by the gentoo-desktop top-level project)



Motivation
==========

GNOME, KDE, Fluxbox, to name only a few, have all their own ways of handling
menus. There have been several requests [1]_ [2]_ [3]_ [4]_ [5]_ [6]_ from
users to streamline these menus. Furthermore there are several bug reports
about applications not having a menu entry [7]_, but since there is not
standard way to create such an entry, they are just sitting around in
bugzilla.



Rationale
=========

The idea of a common menu system is not new to the Linux world, every big
distribution (Debian, Mandrake, RedHat, Suse) has such a system. The big DE's,
KDE and GNOME, with the help of freedesktop.org [8]_, are also trying to
implement one standard. That will most likely happen in GNOME 2.6 and KDE 3.2
(Currently they are only implementing different versions of the
desktop-entry-spec, but interpreting it in an incompatible way).  But there
are still many other WM's that currently don't support these specs.  So we are
trying to base our work on the specifications GNOME and KDE are going to use.
(These are no official standards but evolving specifications). This has the
following advantages:

* follow specified standards
* i18n support
* provide the necessary flexibility and modularity 
* integrate with small changes to our ebuild tree.
* support for per system and per user menus



Specification
=============

We are trying to follow these specifications:

* Desktop Entry Specification [9]_
* Menu Specification [10]_
* Icon Theme Specification [11]_

There are two libraries that offer an API to these specifications:

* PyXDG [12]_ (written in python)
* Desktop File Utils [13]_ (written in C)

Our goal is to patch the WM's with the help of these libraries to support the
specifications. APP's then only have to install a .desktop entry [9]_ and
optionally an icon and will be listed in all menus. This installation could
easily be done by two portage commands (domenu, doicon).


Implementation / Status
=======================

This GLEP exists for a long time now, still it is not accepted. I will outline
the current status:

* KDE 3.2 (x86) supports this specification
* GNOME 2.6 (~x86) supports this specification
* domenu[12_] has to be included in portage to be used by the ebuilds to
  install a desktop entry
* Somebody needs to write patches for the other WM's:

We should focus on adding support to the following WM's first:

* xfce, blackblox / fluxbox / openbox / waimea / kahakai, icewm
* fvwm, windowmaker, enlightment, afterstep

The following are not so important, but support some kind of applications 
menu:

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


Credits
=======

Based on suggestions from former discussions on the gentoo bugzilla,
mailinglists and forums.



References
==========

.. [1] http://bugs.gentoo.org/show_bug.cgi?id=5510
.. [2] http://bugs.gentoo.org/show_bug.cgi?id=10429
.. [3] http://bugs.gentoo.org/show_bug.cgi?id=4884
.. [4] http://bugs.gentoo.org/show_bug.cgi?id=25797
.. [5] http://forums.gentoo.org/viewtopic.php?t=66754
.. [6] http://forums.gentoo.org/viewtopic.php?p=263106#263106
.. [7] http://bugs.gentoo.org/show_bug.cgi?id=25756
.. [8] http://www.freedesktop.org
.. [9] Desktop Entry Specification
   [http://www.freedesktop.org/standards/desktop-entry-spec/0.9.4/]
.. [10] Menu Specification
   [http://www.freedesktop.org/standards/menu-spec/0.8/]
.. [11] Icon Theme Specification
   [http://www.freedesktop.org/standards/icon-theme-spec/0.7/]
.. [12] PyXDG
   [http://www.freedesktop.org/software/pyxdg]
.. [13] Desktop File Utils
   [http://www.freedesktop.org/software/desktop-file-utils]
.. [14] domenu
   [http://bugs.gentoo.org/show_bug.cgi?id=25756]


Copyright
=========

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Unported License.  To view a copy of this license, visit
https://creativecommons.org/licenses/by-sa/3.0/.