Desktop Menu Specification

Waldo Bastian


    
  

Francois Gouget


    
  

Alex Graveley


    
  

George Lebl


    
  

Havoc Pennington


    
  

Heinrich Wendel


    
  

Version 1.1-draft

31 March 2011


Table of Contents

Introduction
File locations
Extensions to the desktop entry format
Examples of using Categories and OnlyShowIn
Format of menu files
Document Type Declaration
Elements
Merging
Generating the menus
Legacy Menu Hierarchies
Example Menu File
A. Registered Categories
Main Categories
Additional Categories
Reserved Categories
B. Registered OnlyShowIn Environments
C. Integrating your application in the menus
Adding menu items
Install Locations
Example
Backward Compatibility
D. Implementation notes
Menu editing
Glossary

Introduction

This document defines how to construct a user-visible hierarchy of applications, typically displayed as a menu. It allows third-party software to add menu items that work for all desktops, and allows system administrators to edit menus in a way that affects all desktops.

The basic scheme is very simple. Information about each application (menu item) is stored in a desktop entry (see Desktop Entry Standard). Then an XML configuration file defines the hierarchical arrangement (layout) of menu items, and which menu items are actually displayed.

Things are complicated somewhat by the need to support legacy desktop entry hierarchies, and the need to allow third parties to extend the menu layout. Both of these issues are addressed by the idea of merging two menu layouts.

In addition to a strict definition of the contents of each menu this specification also foresees in a number of layout / presentation hints. This part of the specification is optional, implementations may chose to ignore these hints.