3 1. The Debian Policy Manual states (ยง9.6) that 'The Debian menu
4 package provides a standard interface between packages providing
5 applications and "menu programs"'. It further states that 'All
6 packages that provide applications that need not be passed any
7 special command line arguments for normal operations should
8 register a menu entry for those applications'.
10 2. All details about menu system requirement are delegated to the
11 Debian Menu sub-policy and Debian Menu System manuals (the
12 "Debian menu system").
14 3. An external specification, the Freedesktop Desktop Entry
15 Specification (the ".desktop spec"), with native support in many
16 X desktop environments, has appeared since the Debian Menu
17 system was developed. The .desktop spec offers a fairly strict
18 super-set of Debian Menu system functionality.
20 4. The .desktop specification has significant technical benefits
21 for users over the Debian menu system. The .desktop
22 specification works together with the freedesktop.org mime type
23 and icon specifications to provide operations expected by
24 desktop users from other environments, such as Mac OS X or
25 Windows. As such, applications must provide a .desktop file to
26 operate well in most desktop environments.
28 5. The Debian Technical Committee has been asked to resolve a
29 dispute between maintainers of Debian Policy over a change that
31 i. incorporates the description of the FreeDesktop menu system
32 and its use in Debian for listing program in desktop menus
33 and associating them with media types
35 ii. softens the wording on the Debian Menu system to reflect that
36 in Jessie it will be neither displayed nor installed by
37 default on standard Debian installations.
41 1. The Technical Committee resolves that packages which provide
42 applications customarily designed for use within a desktop
43 environment should provide a .desktop file conforming to the
44 Freedesktop Desktop Entry Specification.
46 2. Packages may provide menu files at the pleasure of the
47 maintainer, but packages providing a .desktop file shall not
48 also provide a menu file.
50 2. We further resolve that "menu programs" should not depend on the
51 Debian Menu System and should instead rely on .desktop file
52 contents for constructing a list of applications to present to
55 3. We recommend that the maintainers of the 'menu' package update
56 that package to reflect this increased focus on .desktop files
57 by modifying the 'menu' package to use .desktop files for the
58 source of menu information in addition to menu files.
60 4. Discussion of the precise relationship between menu file
61 section/hints values and .desktop file Categories values may be
62 defined within the Debian Menu sub-policy and Debian Menu
65 The following information is an informative addition to help describe
66 the motivation for this policy change.
68 A. The .desktop spec provides more functionality:
70 a) Associating mime types with applications
71 b) Support for more icon image formats
72 c) Translation of menu items
73 d) D-Bus application activation
74 e) StartupNotify support
76 B. Support for the .desktop spec is widely provided as part of
77 upstream packaging for desktop applications.
79 C. A .desktop file describe in the .desktop spec captures
80 essentially the same information as that present in the Debian
85 title Name / GenericName [1]
87 section Catagories [3]
94 [0] ?package uses Debian package names, TryExec offers a
95 system-independent mechanism using a special program or
96 mode of the existing program to query whether the
97 dependencies to run the application are satisfied
99 [1] GenericName can offer a brief functional description of a
100 program, much like the Debian alternatives for things like
103 [2] needs adds 'vc' and 'wm' classifications, a .desktop file
104 does not anticipate running applications on virtual consoles
105 as a separate notion from within an X. I'll note that the
106 only package on my system with needs="vc" is psmisc for the
107 pstree application, which runs just fine in any X terminal
108 emulator. Also .desktop files do not expect people to switch
109 window managers during a session.
111 [3] The menu file requires that the package define the entire
112 menu path to the entry, while the .desktop file defines only
113 the Catagories within the menu, which allows the user
114 environment to construct its own presentation method
116 [4] Menu files allow only for xpm format icons while
117 .desktop files support a wide variety of image formats,
118 including png jpg and svg. Menu files also limit the size of
119 icons to 32x32, which can be painfully small on higher
120 resolution monitors, or less detailed when scaled to large
123 [5] Because the .desktop specification does not enforce a
124 particular layout of menu entries, applications are
125 encouraged to specify as many 'categories' as they like and
126 have the menu system pick where to include them. This can
127 easily include policies like that described for the hints
128 field in the Debian menu.
130 D. .desktop files also provide additional fields not present in
131 the Debian menu system:
133 Type Application, Link or Directory. The latter two
134 provide a common format for storing references
135 to non-application objects within the desktop
138 NoDisplay An artifact of the ability to handle
139 content-based application launching; a
140 NoDisplay entry isn't shown in the menu
141 system, but is available for handling Mime types.
143 Comment Offered as a tooltip to the user, providing
144 additional details about the application.
146 Hidden An artifact of the implementation allowing
147 users to selectively disable system menu entries
149 OnlyShowIn/ Allows desktop-system specific applications to not
150 NotShowIn appear in other desktop environments, such as
151 desktop system preferences systems.
153 DBusActivatable Whether the application supports standard
154 D-Bus messages to control the application, including
155 the ability to direct applications to open
156 additional files or perform other operations
158 Path The starting directory for the application. I
159 haven't found any .desktop file using this
160 feature, but it is replicates functionality
161 present in Mac OSX and Windows.
163 Actions Similar to a mechanism provided on Windows
164 where you can list many different operations
165 available from a single application, such as
166 "open", "print", "play", "frobnicate" and
167 Windows automatically adds these to the
168 right-click menu from within explorer.
170 MimeType The mime types supported by the
171 application. This allows the wider system to
172 find a application suitable for
173 viewing/modifying specific content, such as a
176 KeyWords Provides tags to allow for some degree of
177 search-ability/categorization of menu
178 entries. I'd be able to explain this in more
179 detail if I could find any examples of it in use.
181 StartupNotify/ Announces that the application supports the Startup
182 StartupWMClass Notification Protocol Specification, which
183 allows the desktop environment to detect when
184 the application has successfully launched so
185 that it can disable the waiting cursor.
187 URL Used in 'Link' .desktop files to reference an object.
189 E. .desktop files cede significant authority over menu
190 organization to the user agent presenting the overall
191 application menu. This is already a reality as many desktop
192 environments show *none* of the menu file data at all; having
193 applications which currently ship a menu file change to
194 shipping a .desktop file will bring them into uniformity with
195 other pieces of the desktop environment by incorporating them
196 into the existing desktop menu system
198 F. The .desktop specification and other Freedesktop.org
199 specifications relating to mime types and icons are all interrelated
200 and work together to provide a system capable of implementing
201 common desktop operations. Not providing a .desktop file
202 significantly reduces the functionality of the overall
203 environment, and so any desktop application must provide the
204 full suite. Also delivering a Debian menu file would end up
205 duplicating information in potentially conflicting ways.