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.