/[gentoo]/xml/htdocs/proj/en/glep/glep-0016.html
Gentoo

Diff of /xml/htdocs/proj/en/glep/glep-0016.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 Revision 1.9
1<?xml version="1.0" encoding="utf-8" ?> 1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<!-- 4
5This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8-->
9<head> 5<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.0: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 16 -- Gentoo Menu System</title> 8 <title>GLEP 16 -- Gentoo Menu System</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14</head> 10</head>
15<body bgcolor="white"> 11<body bgcolor="white">
16<table class="navigation" cellpadding="0" cellspacing="0" 12<table class="navigation" cellpadding="0" cellspacing="0"
22<td class="textlinks" align="left"> 18<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 19[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>] 20[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0016.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0016.txt">GLEP Source</a></b>]
26</td></tr></table> 22</td></tr></table>
27<div class="document">
28<table class="rfc2822 field-list" frame="void" rules="none"> 23<table class="rfc2822 docutils field-list" frame="void" rules="none">
29<col class="field-name" /> 24<col class="field-name" />
30<col class="field-body" /> 25<col class="field-body" />
31<tbody valign="top"> 26<tbody valign="top">
32<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">16</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">16</td>
33</tr> 28</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Menu System</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Menu System</td>
35</tr> 30</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.0</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.7</td>
37</tr> 32</tr>
38<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0016.txt?cvsroot=gentoo">2003/09/27 22:00:00</a></td> 33<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0016.txt?cvsroot=gentoo">2004/11/11 21:33:13</a></td>
39</tr> 34</tr>
40<tr class="field"><th class="field-name">Author:</th><td class="field-body">Heinrich Wendel &lt;lanius&#32;&#97;t&#32;gentoo.org&gt;,</td> 35<tr class="field"><th class="field-name">Author:</th><td class="field-body">Heinrich Wendel &lt;lanius&#32;&#97;t&#32;gentoo.org&gt;,</td>
41</tr> 36</tr>
42<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> 37<tr class="field"><th class="field-name">Status:</th><td class="field-body">deferred</td>
43</tr> 38</tr>
44<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 39<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45</tr> 40</tr>
46<tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td> 41<tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
47</tr> 42</tr>
48<tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Sep-2003</td> 43<tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Sep-2003</td>
49</tr> 44</tr>
50<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">04-Oct-2003</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">04-Oct-2003, 11-Dec-2003, 13-Dec-2003, 4-May-2004, 11-Nov-2004</td>
51</tr> 46</tr>
52</tbody> 47</tbody>
53</table> 48</table>
54<hr /> 49<hr />
55<div class="contents topic" id="contents"> 50<div class="contents topic">
56<p class="topic-title"><a name="contents">Contents</a></p> 51<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
57<ul class="simple"> 52<ul class="simple">
58<li><a class="reference" href="#definitions" id="id36" name="id36">Definitions</a></li> 53<li><a class="reference" href="#definitions" id="id29" name="id29">Definitions</a></li>
59<li><a class="reference" href="#abstract" id="id37" name="id37">Abstract</a></li> 54<li><a class="reference" href="#abstract" id="id30" name="id30">Abstract</a></li>
55<li><a class="reference" href="#status" id="id31" name="id31">Status</a></li>
60<li><a class="reference" href="#motivation" id="id38" name="id38">Motivation</a></li> 56<li><a class="reference" href="#motivation" id="id32" name="id32">Motivation</a></li>
61<li><a class="reference" href="#rationale" id="id39" name="id39">Rationale</a></li> 57<li><a class="reference" href="#rationale" id="id33" name="id33">Rationale</a></li>
62<li><a class="reference" href="#specification" id="id40" name="id40">Specification</a><ul> 58<li><a class="reference" href="#specification" id="id34" name="id34">Specification</a></li>
63<li><a class="reference" href="#what-packages-with-an-app-should-do" id="id41" name="id41">1. What packages with an APP should do</a><ul>
64<li><a class="reference" href="#desktop-file-format" id="id42" name="id42">1.1 .desktop file format</a></li>
65<li><a class="reference" href="#validating-the-file" id="id43" name="id43">1.2 Validating the file</a></li>
66<li><a class="reference" href="#icon" id="id44" name="id44">1.3 Icon</a></li>
67<li><a class="reference" href="#modifying-the-ebuild" id="id45" name="id45">1.4 Modifying the ebuild</a></li>
68</ul>
69</li>
70<li><a class="reference" href="#what-packages-with-a-wm-should-do" id="id46" name="id46">2. What packages with a WM should do</a></li>
71<li><a class="reference" href="#the-menu-layout-file" id="id47" name="id47">3. The Menu layout file</a></li>
72<li><a class="reference" href="#customizing-the-menus" id="id48" name="id48">4. Customizing the menus</a><ul>
73<li><a class="reference" href="#changing-the-default-menu-layout" id="id49" name="id49">4.1 Changing the default menu layout</a></li>
74<li><a class="reference" href="#adding-own-wm-files" id="id50" name="id50">4.2 Adding own WM files</a></li>
75<li><a class="reference" href="#adding-own-menu-entries" id="id51" name="id51">4.3 Adding own menu entries</a></li>
76</ul>
77</li>
78</ul>
79</li>
80<li><a class="reference" href="#drawbacks" id="id52" name="id52">Drawbacks</a></li>
81<li><a class="reference" href="#backwards-compatibility" id="id53" name="id53">Backwards Compatibility</a></li>
82<li><a class="reference" href="#reference-implementation" id="id54" name="id54">Reference Implementation</a></li> 59<li><a class="reference" href="#implementation-status" id="id35" name="id35">Implementation / Status</a></li>
83<li><a class="reference" href="#credits" id="id55" name="id55">Credits</a></li> 60<li><a class="reference" href="#credits" id="id36" name="id36">Credits</a></li>
84<li><a class="reference" href="#references" id="id56" name="id56">References</a></li> 61<li><a class="reference" href="#references" id="id37" name="id37">References</a></li>
85<li><a class="reference" href="#copyright" id="id57" name="id57">Copyright</a></li> 62<li><a class="reference" href="#copyright" id="id38" name="id38">Copyright</a></li>
86</ul> 63</ul>
87</div> 64</div>
88<div class="section" id="definitions"> 65<div class="section">
89<h1><a class="toc-backref" href="#id36" name="definitions">Definitions</a></h1> 66<h1><a class="toc-backref" href="#id29" id="definitions" name="definitions">Definitions</a></h1>
90<blockquote> 67<blockquote>
91<dl> 68<dl class="docutils">
92<dt><em>APP</em></dt> 69<dt><em>APP</em></dt>
93<dd>A graphical application that should be listed in the menus.</dd> 70<dd>A graphical application that should be listed in the menus.</dd>
94<dt><em>WM</em></dt> 71<dt><em>WM</em></dt>
95<dd>A program containing a menu manager (i.e. a program that can display a menu, e.g. a windowmanager).</dd> 72<dd>A program containing a menu manager (i.e. a program that can display a menu, e.g. a windowmanager).</dd>
96<dt><em>rule file</em></dt>
97<dd>A python script that describes how to build the menu for a WM.</dd>
98</dl> 73</dl>
99</blockquote> 74</blockquote>
100</div> 75</div>
101<div class="section" id="abstract"> 76<div class="section">
102<h1><a class="toc-backref" href="#id37" name="abstract">Abstract</a></h1> 77<h1><a class="toc-backref" href="#id30" id="abstract" name="abstract">Abstract</a></h1>
103<p>This GLEP handles a proposal for the following two goals:</p> 78<p>This GLEP handles a proposal for the following two goals:</p>
104<ul class="simple"> 79<ul class="simple">
105<li>Create a common menu layout, which would be independent of the WM. 80<li>Create a common menu layout, which would be independent of the WM.
106This point sound quite important for those people who use more than one WM.</li> 81This point is quite important for those people who use more than one WM.</li>
107<li>Provide a common way to add applications to the menus.</li> 82<li>Provide a common way to add applications to the menus.</li>
108</ul> 83</ul>
109</div> 84</div>
110<div class="section" id="motivation"> 85<div class="section">
86<h1><a class="toc-backref" href="#id31" id="status" name="status">Status</a></h1>
87<p>Timed out (and now subsumed by the gentoo-desktop top-level project)</p>
88</div>
89<div class="section">
111<h1><a class="toc-backref" href="#id38" name="motivation">Motivation</a></h1> 90<h1><a class="toc-backref" href="#id32" id="motivation" name="motivation">Motivation</a></h1>
112<p>GNOME, KDE, Fluxbox, to name only a few, have all their own ways of handling 91<p>GNOME, KDE, Fluxbox, to name only a few, have all their own ways of handling
113menus. There have been several requests <a class="footnote-reference" href="#id19" id="id1" name="id1">[1]</a> <a class="footnote-reference" href="#id20" id="id2" name="id2">[2]</a> <a class="footnote-reference" href="#id21" id="id3" name="id3">[3]</a> <a class="footnote-reference" href="#id22" id="id4" name="id4">[4]</a> <a class="footnote-reference" href="#id23" id="id5" name="id5">[5]</a> <a class="footnote-reference" href="#id24" id="id6" name="id6">[6]</a> from 92menus. There have been several requests <a class="footnote-reference" href="#id15" id="id1" name="id1">[1]</a> <a class="footnote-reference" href="#id16" id="id2" name="id2">[2]</a> <a class="footnote-reference" href="#id17" id="id3" name="id3">[3]</a> <a class="footnote-reference" href="#id18" id="id4" name="id4">[4]</a> <a class="footnote-reference" href="#id19" id="id5" name="id5">[5]</a> <a class="footnote-reference" href="#id20" id="id6" name="id6">[6]</a> from
114users to streamline these menus. Furthermore there are several bug reports 93users to streamline these menus. Furthermore there are several bug reports
115about applications not having a menu entry <a class="footnote-reference" href="#id25" id="id7" name="id7">[7]</a>, but since there is not 94about applications not having a menu entry <a class="footnote-reference" href="#id21" id="id7" name="id7">[7]</a>, but since there is not
116standard way to create such an entry, they are just sitting around in 95standard way to create such an entry, they are just sitting around in
117bugzilla.</p> 96bugzilla.</p>
118</div> 97</div>
119<div class="section" id="rationale"> 98<div class="section">
120<h1><a class="toc-backref" href="#id39" name="rationale">Rationale</a></h1> 99<h1><a class="toc-backref" href="#id33" id="rationale" name="rationale">Rationale</a></h1>
121<p>The idea of a common menu system is not new to the Linux world, every big 100<p>The idea of a common menu system is not new to the Linux world, every big
122distribution (Debian, Mandrake, RedHat, Suse) has such a system. The big DE's, 101distribution (Debian, Mandrake, RedHat, Suse) has such a system. The big DE's,
123KDE and GNOME, with the help of freedesktop.org <a class="footnote-reference" href="#id26" id="id8" name="id8">[8]</a> are also trying to 102KDE and GNOME, with the help of freedesktop.org <a class="footnote-reference" href="#id22" id="id8" name="id8">[8]</a>, are also trying to
124implement one standard. That will most likely happen in GNOME 2.6 and KDE 3.2 103implement one standard. That will most likely happen in GNOME 2.6 and KDE 3.2
125(Currently they are only implementing different versions of the 104(Currently they are only implementing different versions of the
126desktop-entry-spec, but interpreting it in an incompatible way). But there 105desktop-entry-spec, but interpreting it in an incompatible way). But there
127are still many other WM's around that are not going to follow these specs in 106are still many other WM's that currently don't support these specs. So we are
128the near future. So we are trying to base our work on the specifications GNOME 107trying to base our work on the specifications GNOME and KDE are going to use.
129and KDE are going to use. (These are no official standards but evolving 108(These are no official standards but evolving specifications). This has the
130specifications). This has the following advantages:</p> 109following advantages:</p>
131<ul class="simple"> 110<ul class="simple">
132<li>follow specified standards</li> 111<li>follow specified standards</li>
133<li>i18n support</li> 112<li>i18n support</li>
134<li>provide the necessary flexibility and modularity</li> 113<li>provide the necessary flexibility and modularity</li>
135<li>integrate with small changes to our ebuildtree.</li> 114<li>integrate with small changes to our ebuildtree.</li>
136<li>support for per system and per user menus</li> 115<li>support for per system and per user menus</li>
137</ul> 116</ul>
138<p>This system will be completely optional, nobody will be forced to use it!</p>
139<p>Here an short overview, how it is supposed work:</p>
140<ol class="arabic simple">
141<li>Every APP installs a .desktop file.</li>
142<li>Every WM installs a rule file.</li>
143<li>There is a file which specifies the menu layout.</li>
144<li>A script is run and parses all rule and .desktop files and the menu
145layout and creates the corresponding menus.</li>
146</ol>
147<p>We also intent to include a graphical editor for the menus, but this is not
148the primary priority.</p>
149</div> 117</div>
150<div class="section" id="specification"> 118<div class="section">
151<h1><a class="toc-backref" href="#id40" name="specification">Specification</a></h1> 119<h1><a class="toc-backref" href="#id34" id="specification" name="specification">Specification</a></h1>
152<div class="section" id="what-packages-with-an-app-should-do"> 120<p>We are trying to follow these specifications:</p>
153<h2><a class="toc-backref" href="#id41" name="what-packages-with-an-app-should-do">1. What packages with an APP should do</a></h2> 121<ul class="simple">
154<div class="section" id="desktop-file-format"> 122<li>Desktop Entry Specification <a class="footnote-reference" href="#id23" id="id9" name="id9">[9]</a></li>
155<h3><a class="toc-backref" href="#id42" name="desktop-file-format">1.1 .desktop file format</a></h3> 123<li>Menu Specification <a class="footnote-reference" href="#id24" id="id10" name="id10">[10]</a></li>
156<p>If you want users to be able to find your application you have to create a 124<li>Icon Theme Specification <a class="footnote-reference" href="#id25" id="id11" name="id11">[11]</a></li>
157menu entry in the following format:</p> 125</ul>
158<pre class="literal-block"> 126<p>There are two libraries that offer an API to these specifications:</p>
159[Desktop Entry] 127<ul class="simple">
160Encoding=UTF-8 128<li>PyXDG <a class="footnote-reference" href="#id26" id="id12" name="id12">[12]</a> (written in python)</li>
161Type=Application 129<li>Desktop File Utils <a class="footnote-reference" href="#id27" id="id13" name="id13">[13]</a> (written in C)</li>
162Name=KWord 130</ul>
163GenericName=Word Processing 131<p>Our goal is to patch the WM's with the help of these libraries to support the
164GenericName[it]=Textverarbeitung 132specifications. APP's then only have to install a .desktop entry <a class="footnote-reference" href="#id23" id="id14" name="id14">[9]</a> and
165Categories=Application;Office;Wordprocessor 133optionally an icon and will be listed in all menus. This installation could
166Icon=kword 134easily be done by two portage commands (domenu, doicon).</p>
167Exec=/usr/kde/3.1/bin/kword
168</pre>
169<p>This example does not show all translations of the name and comment, but you
170can see the format of the file and translations from it. The Categories field
171specifies which menu group the application should appear under. In this
172example, the entry is under System Tools.</p>
173<p>The file should follow the xdg desktop-entry spec 0.9.4 <a class="footnote-reference" href="#id27" id="id9" name="id9">[9]</a>. The Categories
174field is used as described in the menu-spec 0.7 <a class="footnote-reference" href="#id28" id="id10" name="id10">[10]</a>.</p>
175</div> 135</div>
176<div class="section" id="validating-the-file">
177<h3><a class="toc-backref" href="#id43" name="validating-the-file">1.2 Validating the file</a></h3>
178<p>We will provide a tool (possibly included in repoman) which will validate
179.desktop files.</p>
180</div>
181<div class="section" id="icon"> 136<div class="section">
182<h3><a class="toc-backref" href="#id44" name="icon">1.3 Icon</a></h3> 137<h1><a class="toc-backref" href="#id35" id="implementation-status" name="implementation-status">Implementation / Status</a></h1>
183<p>There are two possibilities to install an icon for the application.</p> 138<p>This GLEP exists for a long time now, still it is not accepted. I will outline
139the current status:</p>
184<ol class="arabic simple"> 140<ul class="simple">
185<li>You install an icon in /usr/share/pixmaps and specify the absolute path to 141<li>KDE 3.2 (x86) supports this specification</li>
186the file in the .desktop file.</li> 142<li>GNOME 2.6 (~x86) support this specification</li>
187<li>You install the file as part of an icon-theme <a class="footnote-reference" href="#id29" id="id11" name="id11">[11]</a> and specify the name of 143<li>domenu[<a class="reference" href="#id26">12</a>] has to be included in portage to be used by the ebuilds to
188the icon in the .desktop file. Possible icon-themes are:<ul> 144install a desktop entry</li>
189<li>default.kde</li> 145<li>Somebody needs to write patches for the other WM's:</li>
190<li>gnome</li>
191<li>gentoo</li>
192</ul>
193</li> 146</ul>
147<p>We should focus on adding support to the following WM's first:</p>
148<ul class="simple">
149<li>xfce, blackblox / fluxbox / openbox / waimea / kahakai, icewm</li>
150<li>fvwm, windowmaker, enlightment, afterstep</li>
194</ol> 151</ul>
195<p>The preferred format for icons is png with transparent background.</p> 152<p>The following are not so important, but support some kind of applications
153menu:</p>
154<ul class="simple">
155<li>aewm / aewm++ / evilwm / windowlab / oroborus, amiwm, ctwm, flwm</li>
156<li>golem, larswm, pekwm, plwm, pwm, qvwm, selectwm, treewm, trwm</li>
157<li>vtwm, xpde</li>
158</ul>
196</div> 159</div>
197<div class="section" id="modifying-the-ebuild">
198<h3><a class="toc-backref" href="#id45" name="modifying-the-ebuild">1.4 Modifying the ebuild</a></h3>
199<p>To actually install this file, you have add it to the filesdir of the ebuild.
200The extension has to be .desktop. Then change the ebuild to contain a line
201similar to this: &quot;domenu ${FILESDIR}/file.desktop&quot;.</p>
202</div>
203</div>
204<div class="section" id="what-packages-with-a-wm-should-do">
205<h2><a class="toc-backref" href="#id46" name="what-packages-with-a-wm-should-do">2. What packages with a WM should do</a></h2>
206<p>Each WM should provide a rule file in /usr/share/menus/wms which follows a
207specific format. Documentation for this format has still to be written, You
208can find examples at <a class="footnote-reference" href="#id30" id="id12" name="id12">[12]</a>.</p>
209</div>
210<div class="section" id="the-menu-layout-file">
211<h2><a class="toc-backref" href="#id47" name="the-menu-layout-file">3. The Menu layout file</a></h2>
212<p>The format of the menu layout file will follow the xdg menu-spec 0.7 <a class="footnote-reference" href="#id28" id="id13" name="id13">[10]</a>.</p>
213<p>Gentoo will provide a default menu structure. You can find the current
214proposal at <a class="footnote-reference" href="#id32" id="id14" name="id14">[14]</a>.</p>
215</div>
216<div class="section" id="customizing-the-menus">
217<h2><a class="toc-backref" href="#id48" name="customizing-the-menus">4. Customizing the menus</a></h2>
218<p>Customizing of this system can be done in two ways, system-wide or user-wide.
219The locations of the files follow the xdg basedir-spec 0.6 <a class="footnote-reference" href="#id32" id="id15" name="id15">[14]</a>.</p>
220<div class="section" id="changing-the-default-menu-layout">
221<h3><a class="toc-backref" href="#id49" name="changing-the-default-menu-layout">4.1 Changing the default menu layout</a></h3>
222<p>The system menu layout is located in /etc/menu/applications.menu, it can be
223overridden by $XDG_CONFIG_HOME/applications.menu.</p>
224</div>
225<div class="section" id="adding-own-wm-files">
226<h3><a class="toc-backref" href="#id50" name="adding-own-wm-files">4.2 Adding own WM files</a></h3>
227<p>The system WM files are located in $XDG_DATA_DIRS/menu/wms/, they can be
228overridden or extended by $XDG_DATA_HOME/wms/.</p>
229</div>
230<div class="section" id="adding-own-menu-entries">
231<h3><a class="toc-backref" href="#id51" name="adding-own-menu-entries">4.3 Adding own menu entries</a></h3>
232<p>The system .desktop files are located in $XDG_DATA_DIRS/menu/applications/,
233they can be overridden or extended by $XDG_DATA_HOME/menu/applications/.</p>
234</div>
235</div>
236</div>
237<div class="section" id="drawbacks">
238<h1><a class="toc-backref" href="#id52" name="drawbacks">Drawbacks</a></h1>
239<p>A concern might be that it involves a changing a lot of ebuilds (every APP
240needs to be changed). There has been a proposal for another solution that
241generates menus from the current menu structures of GNOME/KDE. This would have
242the advantage of not changing the ebuilds, but the disadvantage of not being
243very flexible. A menu layout file or per system/users menus would not be
244possibly. It seems more like a quick and dirty solution. Consider that we
245don't have to provide massive file-updates, global lists coherent with our
246tree, but each capable and installed package requires a small change that goes
247back and forwards with versions without overhead for version bumps.</p>
248</div>
249<div class="section" id="backwards-compatibility">
250<h1><a class="toc-backref" href="#id53" name="backwards-compatibility">Backwards Compatibility</a></h1>
251<p>People who want to use the new system have to recompile all packages that use
252the &quot;gentoo-menu&quot; USE flag. This could be easily done by a tool that will parse
253/var/db/pkg and for all ebuilds find corresponding updates with menu info.</p>
254<p>Since nobody is forced to use this system, there are no other backward
255compatibility issues, you just have to disable the &quot;gentoo-menu&quot; USE-Flag and
256you'll get the vanilla situation.</p>
257</div>
258<div class="section" id="reference-implementation">
259<h1><a class="toc-backref" href="#id54" name="reference-implementation">Reference Implementation</a></h1>
260<p>The reference implementation is nearly finished, it's written in Python, you
261can find it here <a class="footnote-reference" href="#id33" id="id16" name="id16">[15]</a> <a class="footnote-reference" href="#id34" id="id17" name="id17">[16]</a>. It contains a sample menu layout
262(/etc/menu/applications.menu), the domenu script, the update-menus script and
263the gentoo icon theme.</p>
264<p>Domenu has to be included in Portage, it will install new menu entries in
265/usr/share/menu/applications and run the update-menus script afterwards.</p>
266<p>Update-menus parses the menu layout file, the .desktop files and the rule
267files and then creates the menus. If run as user it will create menus only for
268that user, if run as root it will create system wide menus.</p>
269</div>
270<div class="section" id="credits"> 160<div class="section">
271<h1><a class="toc-backref" href="#id55" name="credits">Credits</a></h1> 161<h1><a class="toc-backref" href="#id36" id="credits" name="credits">Credits</a></h1>
272<p>Based on suggestions from former discussions on -dev and the Debian 162<p>Based on suggestions from former discussions on the gentoo bugzilla,
273menu-system documentation <a class="footnote-reference" href="#id35" id="id18" name="id18">[17]</a>.</p> 163mailinglists and forums.</p>
274</div> 164</div>
275<div class="section" id="references"> 165<div class="section">
276<h1><a class="toc-backref" href="#id56" name="references">References</a></h1> 166<h1><a class="toc-backref" href="#id37" id="references" name="references">References</a></h1>
277<table class="footnote" frame="void" id="id19" rules="none"> 167<table class="docutils footnote" frame="void" id="id15" rules="none">
278<colgroup><col class="label" /><col /></colgroup> 168<colgroup><col class="label" /><col /></colgroup>
279<tbody valign="top"> 169<tbody valign="top">
280<tr><td class="label"><a class="fn-backref" href="#id1" name="id19">[1]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=5510">http://bugs.gentoo.org/show_bug.cgi?id=5510</a></td></tr> 170<tr><td class="label"><a class="fn-backref" href="#id1" name="id15">[1]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=5510">http://bugs.gentoo.org/show_bug.cgi?id=5510</a></td></tr>
281</tbody> 171</tbody>
282</table> 172</table>
283<table class="footnote" frame="void" id="id20" rules="none"> 173<table class="docutils footnote" frame="void" id="id16" rules="none">
284<colgroup><col class="label" /><col /></colgroup> 174<colgroup><col class="label" /><col /></colgroup>
285<tbody valign="top"> 175<tbody valign="top">
286<tr><td class="label"><a class="fn-backref" href="#id2" name="id20">[2]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=10429">http://bugs.gentoo.org/show_bug.cgi?id=10429</a></td></tr> 176<tr><td class="label"><a class="fn-backref" href="#id2" name="id16">[2]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=10429">http://bugs.gentoo.org/show_bug.cgi?id=10429</a></td></tr>
287</tbody> 177</tbody>
288</table> 178</table>
289<table class="footnote" frame="void" id="id21" rules="none"> 179<table class="docutils footnote" frame="void" id="id17" rules="none">
290<colgroup><col class="label" /><col /></colgroup> 180<colgroup><col class="label" /><col /></colgroup>
291<tbody valign="top"> 181<tbody valign="top">
292<tr><td class="label"><a class="fn-backref" href="#id3" name="id21">[3]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=4884">http://bugs.gentoo.org/show_bug.cgi?id=4884</a></td></tr> 182<tr><td class="label"><a class="fn-backref" href="#id3" name="id17">[3]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=4884">http://bugs.gentoo.org/show_bug.cgi?id=4884</a></td></tr>
293</tbody> 183</tbody>
294</table> 184</table>
295<table class="footnote" frame="void" id="id22" rules="none"> 185<table class="docutils footnote" frame="void" id="id18" rules="none">
296<colgroup><col class="label" /><col /></colgroup> 186<colgroup><col class="label" /><col /></colgroup>
297<tbody valign="top"> 187<tbody valign="top">
298<tr><td class="label"><a class="fn-backref" href="#id4" name="id22">[4]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=25797">http://bugs.gentoo.org/show_bug.cgi?id=25797</a></td></tr> 188<tr><td class="label"><a class="fn-backref" href="#id4" name="id18">[4]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=25797">http://bugs.gentoo.org/show_bug.cgi?id=25797</a></td></tr>
299</tbody> 189</tbody>
300</table> 190</table>
301<table class="footnote" frame="void" id="id23" rules="none"> 191<table class="docutils footnote" frame="void" id="id19" rules="none">
302<colgroup><col class="label" /><col /></colgroup> 192<colgroup><col class="label" /><col /></colgroup>
303<tbody valign="top"> 193<tbody valign="top">
304<tr><td class="label"><a class="fn-backref" href="#id5" name="id23">[5]</a></td><td><a class="reference" href="http://forums.gentoo.org/viewtopic.php?t=66754">http://forums.gentoo.org/viewtopic.php?t=66754</a></td></tr> 194<tr><td class="label"><a class="fn-backref" href="#id5" name="id19">[5]</a></td><td><a class="reference" href="http://forums.gentoo.org/viewtopic.php?t=66754">http://forums.gentoo.org/viewtopic.php?t=66754</a></td></tr>
305</tbody> 195</tbody>
306</table> 196</table>
307<table class="footnote" frame="void" id="id24" rules="none"> 197<table class="docutils footnote" frame="void" id="id20" rules="none">
308<colgroup><col class="label" /><col /></colgroup> 198<colgroup><col class="label" /><col /></colgroup>
309<tbody valign="top"> 199<tbody valign="top">
310<tr><td class="label"><a class="fn-backref" href="#id6" name="id24">[6]</a></td><td><a class="reference" href="http://forums.gentoo.org/viewtopic.php?p=263106#263106">http://forums.gentoo.org/viewtopic.php?p=263106#263106</a></td></tr> 200<tr><td class="label"><a class="fn-backref" href="#id6" name="id20">[6]</a></td><td><a class="reference" href="http://forums.gentoo.org/viewtopic.php?p=263106#263106">http://forums.gentoo.org/viewtopic.php?p=263106#263106</a></td></tr>
311</tbody> 201</tbody>
312</table> 202</table>
313<table class="footnote" frame="void" id="id25" rules="none"> 203<table class="docutils footnote" frame="void" id="id21" rules="none">
314<colgroup><col class="label" /><col /></colgroup> 204<colgroup><col class="label" /><col /></colgroup>
315<tbody valign="top"> 205<tbody valign="top">
316<tr><td class="label"><a class="fn-backref" href="#id7" name="id25">[7]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=25756">http://bugs.gentoo.org/show_bug.cgi?id=25756</a></td></tr> 206<tr><td class="label"><a class="fn-backref" href="#id7" name="id21">[7]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=25756">http://bugs.gentoo.org/show_bug.cgi?id=25756</a></td></tr>
317</tbody> 207</tbody>
318</table> 208</table>
319<table class="footnote" frame="void" id="id26" rules="none"> 209<table class="docutils footnote" frame="void" id="id22" rules="none">
320<colgroup><col class="label" /><col /></colgroup> 210<colgroup><col class="label" /><col /></colgroup>
321<tbody valign="top"> 211<tbody valign="top">
322<tr><td class="label"><a class="fn-backref" href="#id8" name="id26">[8]</a></td><td><a class="reference" href="http://www.freedesktop.org">http://www.freedesktop.org</a></td></tr> 212<tr><td class="label"><a class="fn-backref" href="#id8" name="id22">[8]</a></td><td><a class="reference" href="http://www.freedesktop.org">http://www.freedesktop.org</a></td></tr>
323</tbody> 213</tbody>
324</table> 214</table>
325<table class="footnote" frame="void" id="id27" rules="none"> 215<table class="docutils footnote" frame="void" id="id23" rules="none">
326<colgroup><col class="label" /><col /></colgroup> 216<colgroup><col class="label" /><col /></colgroup>
327<tbody valign="top"> 217<tbody valign="top">
328<tr><td class="label"><a class="fn-backref" href="#id9" name="id27">[9]</a></td><td>Desktop Entry Specification 218<tr><td class="label"><a name="id23">[9]</a></td><td><em>(<a class="fn-backref" href="#id9">1</a>, <a class="fn-backref" href="#id14">2</a>)</em> Desktop Entry Specification
329[<a class="reference" href="http://www.freedesktop.org/standards/desktop-entry-spec/0.9.4/">http://www.freedesktop.org/standards/desktop-entry-spec/0.9.4/</a>]</td></tr> 219[<a class="reference" href="http://www.freedesktop.org/standards/desktop-entry-spec/0.9.4/">http://www.freedesktop.org/standards/desktop-entry-spec/0.9.4/</a>]</td></tr>
330</tbody> 220</tbody>
331</table> 221</table>
332<table class="footnote" frame="void" id="id28" rules="none"> 222<table class="docutils footnote" frame="void" id="id24" rules="none">
333<colgroup><col class="label" /><col /></colgroup> 223<colgroup><col class="label" /><col /></colgroup>
334<tbody valign="top"> 224<tbody valign="top">
335<tr><td class="label"><a name="id28">[10]</a></td><td><em>(<a class="fn-backref" href="#id10">1</a>, <a class="fn-backref" href="#id13">2</a>)</em> Menu Specification 225<tr><td class="label"><a class="fn-backref" href="#id10" name="id24">[10]</a></td><td>Menu Specification
336[<a class="reference" href="http://www.freedesktop.org/standards/menu-spec/0.7/">http://www.freedesktop.org/standards/menu-spec/0.7/</a>]</td></tr> 226[<a class="reference" href="http://www.freedesktop.org/standards/menu-spec/0.8/">http://www.freedesktop.org/standards/menu-spec/0.8/</a>]</td></tr>
337</tbody> 227</tbody>
338</table> 228</table>
339<table class="footnote" frame="void" id="id29" rules="none"> 229<table class="docutils footnote" frame="void" id="id25" rules="none">
340<colgroup><col class="label" /><col /></colgroup> 230<colgroup><col class="label" /><col /></colgroup>
341<tbody valign="top"> 231<tbody valign="top">
342<tr><td class="label"><a class="fn-backref" href="#id11" name="id29">[11]</a></td><td>Icon Theme Specification 232<tr><td class="label"><a class="fn-backref" href="#id11" name="id25">[11]</a></td><td>Icon Theme Specification
343[<a class="reference" href="http://www.freedesktop.org/standards/icon-theme-spec/0.7/">http://www.freedesktop.org/standards/icon-theme-spec/0.7/</a>]</td></tr> 233[<a class="reference" href="http://www.freedesktop.org/standards/icon-theme-spec/0.7/">http://www.freedesktop.org/standards/icon-theme-spec/0.7/</a>]</td></tr>
344</tbody> 234</tbody>
345</table> 235</table>
346<table class="footnote" frame="void" id="id30" rules="none">
347<colgroup><col class="label" /><col /></colgroup>
348<tbody valign="top">
349<tr><td class="label"><a class="fn-backref" href="#id12" name="id30">[12]</a></td><td>Example rule files:
350[<a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/examples/?cvsroot=gentoo-src">http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/examples/?cvsroot=gentoo-src</a>]</td></tr>
351</tbody>
352</table>
353<table class="footnote" frame="void" id="id31" rules="none">
354<colgroup><col class="label" /><col /></colgroup>
355<tbody valign="top">
356<tr><td class="label"><a name="id31">[13]</a></td><td>Reference menu layout
357[<a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/etc/applications.menu?cvsroot=gentoo-src">http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/etc/applications.menu?cvsroot=gentoo-src</a>]</td></tr>
358</tbody>
359</table>
360<table class="footnote" frame="void" id="id32" rules="none"> 236<table class="docutils footnote" frame="void" id="id26" rules="none">
361<colgroup><col class="label" /><col /></colgroup> 237<colgroup><col class="label" /><col /></colgroup>
362<tbody valign="top"> 238<tbody valign="top">
363<tr><td class="label"><a name="id32">[14]</a></td><td><em>(<a class="fn-backref" href="#id14">1</a>, <a class="fn-backref" href="#id15">2</a>)</em> Basedir Specification
364[<a class="reference" href="http://www.freedesktop.org/standards/basedir-spec/0.6/">http://www.freedesktop.org/standards/basedir-spec/0.6/</a>]</td></tr>
365</tbody>
366</table>
367<table class="footnote" frame="void" id="id33" rules="none">
368<colgroup><col class="label" /><col /></colgroup>
369<tbody valign="top">
370<tr><td class="label"><a class="fn-backref" href="#id16" name="id33">[15]</a></td><td>PyXDG 239<tr><td class="label"><a class="fn-backref" href="#id12" name="id26">[12]</a></td><td>PyXDG
371[<a class="reference" href="http://cvs.cojobo.net/cgi-bin/viewcvs.cgi/pyxdg/">http://cvs.cojobo.net/cgi-bin/viewcvs.cgi/pyxdg/</a>]</td></tr> 240[<a class="reference" href="http://www.freedesktop.org/software/pyxdg">http://www.freedesktop.org/software/pyxdg</a>]</td></tr>
372</tbody> 241</tbody>
373</table> 242</table>
374<table class="footnote" frame="void" id="id34" rules="none"> 243<table class="docutils footnote" frame="void" id="id27" rules="none">
375<colgroup><col class="label" /><col /></colgroup> 244<colgroup><col class="label" /><col /></colgroup>
376<tbody valign="top"> 245<tbody valign="top">
377<tr><td class="label"><a class="fn-backref" href="#id17" name="id34">[16]</a></td><td>Gentoo-Menu 246<tr><td class="label"><a class="fn-backref" href="#id13" name="id27">[13]</a></td><td>Desktop File Utils
378[<a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/?cvsroot=gentoo-src">http://www.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-menu/?cvsroot=gentoo-src</a>]</td></tr> 247[<a class="reference" href="http://www.freedesktop.org/software/desktop-file-utils">http://www.freedesktop.org/software/desktop-file-utils</a>]</td></tr>
379</tbody> 248</tbody>
380</table> 249</table>
381<table class="footnote" frame="void" id="id35" rules="none"> 250<table class="docutils footnote" frame="void" id="id28" rules="none">
382<colgroup><col class="label" /><col /></colgroup> 251<colgroup><col class="label" /><col /></colgroup>
383<tbody valign="top"> 252<tbody valign="top">
384<tr><td class="label"><a class="fn-backref" href="#id18" name="id35">[17]</a></td><td>Debian Menu System documentation 253<tr><td class="label"><a name="id28">[14]</a></td><td>domenu
385[<a class="reference" href="http://www.debian.org/doc/packaging-manuals/menu.html/">http://www.debian.org/doc/packaging-manuals/menu.html/</a>]</td></tr> 254[<a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=25756">http://bugs.gentoo.org/show_bug.cgi?id=25756</a>]</td></tr>
386</tbody> 255</tbody>
387</table> 256</table>
388</div> 257</div>
389<div class="section" id="copyright"> 258<div class="section">
390<h1><a class="toc-backref" href="#id57" name="copyright">Copyright</a></h1> 259<h1><a class="toc-backref" href="#id38" id="copyright" name="copyright">Copyright</a></h1>
391<p>This document has been placed in the public domain.</p> 260<p>This document has been placed in the public domain.</p>
392</div> 261</div>
393</div>
394 262
395<hr class="footer"/> 263</div>
396<div class="footer"> 264<div class="footer">
265<hr class="footer" />
397<a class="reference" href="glep-0016.txt">View document source</a>. 266<a class="reference" href="glep-0016.txt">View document source</a>.
398Generated on: 2003-10-04 13:49 UTC. 267Generated on: 2007-10-13 13:39 UTC.
399Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. 268Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
269
400</div> 270</div>
401</body> 271</body>
402</html> 272</html>
403 273

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.20