User Commands XDG-DESKTOP-MENU(1)
NAME
xdg-desktop-menu - command line tool for (un)installing
desktop menu items
SYNOPSIS
xdg-desktop-menu install [--noupdate] [--novendor]
[--mode mode] directory-file(s)
desktop-file(s)
xdg-desktop-menu uninstall [--noupdate] [--mode mode]
directory-file(s) desktop-file(s)
xdg-desktop-menu forceupdate [--mode mode]
xdg-desktop-menu {--help --manual --version}
DESCRIPTION
The xdg-desktop-menu program can be used to install new menu
entries to the desktop's application menu.
The application menu works according to the XDG Desktop Menu
Specification at
http:/www.freedesktop.org/Standards/menu-spec
COMANDS
install
Install one or more applications in a submenu of the
desktop menu system.
desktop-file: A desktop file represents a single menu
entry in the menu. Desktop files are defined by the
freedesktop.org Desktop Entry Specification. The most
important aspects of *.desktop files are summarized
below.
Menu entries can be added to the menu system in two
different ways. They can either be added to a
predefined submenu in the menu system based on one or
more category keywords, or they can be added to a new
submenu.
To add a menu entry to a predefined submenu the desktop
file that represents the menu entry must have a
Categories= entry that lists one or more keywords. The
menu item will be included in an appropriate submenu
based on the included keywords.
To add menu items to a new submenu the desktop-files
must be preceded by a directory-file that describes the
submenu. If multiple desktop-files are specified, all
entries will be added to the same menu. If entries are
installed to a menu that has been created with a
xdg-utils 1.0 Last change: 06/24/2007 1
User Commands XDG-DESKTOP-MENU(1)
previous call to xdg-desktop-menu the entries will be
installed in addition to any already existing entries.
directory-file: The *.directory file indicated by
directory-file represents a submenu. The directory file
provides the name and icon for a submenu. The name of
the directory file is used to identify the submenu.
If multiple directory files are provided each file will
represent a submenu within the menu that preceeds it,
creating a nested menu hierarchy (sub-sub-menus). The
menu entries themselves will be added to the last
submenu.
Directory files follow the syntax defined by the
freedesktop.org Desktop Entry Specification.
uninstall
Remove applications or submenus from the desktop menu
system previously installed with xdg-desktop-menu
install.
A submenu and the associated directory file is only
removed when the submenu no longer contains any menu
entries.
forceupdate
Force an update of the menu system.
This command is only useful if the last call to
xdg-desktop-menu included the --noupdate option.
OPTIONS
--noupdate
Postpone updating the menu system. If multiple updates
to the menu system are made in sequence this flag can
be used to indicate that additional changes will follow
and that it is not necassery to update the menu system
right away.
--novendor
Normally, xdg-desktop-menu checks to ensure that any
*.directory and *.desktop files to be installed has a
vendor prefix. This option can be used to disable that
check.
A vendor prefix consists of alpha characters ([a-zA-Z])
and is terminated with a dash ("-"). Companies and
organizations are encouraged to use a word or phrase,
preferably the organizations name, for which they hold
a trademark as their vendor prefix. The purpose of the
vendor prefix is to prevent name conflicts.
xdg-utils 1.0 Last change: 06/24/2007 2
User Commands XDG-DESKTOP-MENU(1)
--mode mode
mode can be user or system. In user mode the file is
(un)installed for the current user only. In system mode
the file is (un)installed for all users on the system.
Usually only root is allowed to install in system mode.
The default is to use system mode when called by root
and to use user mode when called by a non-root user.
--help
Show command synopsis.
--manual
Show this manualpage.
--version
Show the xdg-utils version information.
DESKTOP FILES
An application item in the application menu is represented
by a *.desktop file. A *.desktop file consists of a [Desktop
Entry] header followed by several Key=Value lines.
A *.desktop file can provide a name and description for an
application in several different languages. This is done by
adding a language code as used by LCMESAGES in square
brackets behind the Key. This way one can specify different
values for the same Key depending on the currently selected
language.
The following keys are often used:
Value=1.0
This is a mandatory field to indicate that the
*.desktop file follows the 1.0 version of the
specification.
Type=Application
This is a mandatory field that indicates that the
*.desktop file describes an application launcher.
Name=Application Name
The name of the application. For example Mozilla
GenericName=Generic Name
A generic description of the application. For example
Web Browser
Comment=Comment
Optional field to specify a tooltip for the
application. For example Visit websites on the Internet
xdg-utils 1.0 Last change: 06/24/2007 3
User Commands XDG-DESKTOP-MENU(1)
Icon=Icon File
The icon to use for the application. This can either be
an absolute path to an image file or an icon-name. If
an icon-name is provided an image lookup by name is
done in the user's current icon theme. The
xdg-icon-resource command can be used to install image
files into icon themes. The advantage of using an
icon-name instead of an absolute path is that with an
icon-name the application icon can be provided in
several different sizes as well as in several
differently themed styles.
Exec=Command Line
The command line to start the application. If the
application can open files the %f placeholder should be
specified. When a file is dropped on the application
launcher the %f is replaced with the file path of the
dropped file. If multiple files can be specified on the
command line the %F placeholder should be used instead
of %f. If the application is able to open URLs in
addition to local files then %u or %U can be used
instead of %f or %F.
Categories=Categories
A list of categories separated by semi-colons. A
category is a keyword that describes and classifies the
application. By default applications are organized in
the application menu based on category. When menu
entries are explicitly assigned to a new submenu it is
not necassery to list any categories.
When using categories it is recommended to include one
of the following categories: AudioVideo, Development,
Education, Game, Graphics, Network, Office, Settings,
System, Utility.
See Appendix A of the XDG Desktop Menu Specification
for information about additional categories.
http:/standards.freedesktop.org/menu-spec/menu-spec-1.0.html
MimeType=Mimetypes
A list of mimetypes separated by semi-colons. This
field is used to indicate which file types the
application is able to open.
For a complete oveview of the *.desktop file format please
visit
http:/www.freedesktop.org/wiki/Standards/desktop-entry-spec
DIRECTORY FILES
The appearance of submenu in the application menu is
provided by a *.directory file. In particular it provides
xdg-utils 1.0 Last change: 06/24/2007 4
User Commands XDG-DESKTOP-MENU(1)
the title of the submenu and a possible icon. A *.directory
file consists of a [Desktop Entry] header followed by
several Key=Value lines.
A *.directory file can provide a title (name) for the
submenu in several different languages. This is done by
adding a language code as used by LCMESAGES in square
brackets behind the Key. This way one can specify different
values for the same Key depending on the currently selected
language.
The following keys are relevqnt for submenus:
Value=1.0
This is a mandatory field to indicate that the
*.directory file follows the 1.0 version of the Desktop
Entry specification.
Type=Directory
This is a mandatory field that indicates that the
*.directory file describes a submenu.
Name=Menu Name
The title of submenu. For example Mozilla
Comment=Comment
Optional field to specify a tooltip for the submenu.
Icon=Icon File
The icon to use for the submenu. This can either be an
absolute path to an image file or an icon-name. If an
icon-name is provided an image lookup by name is done
in the user's current icon theme. The xdg-icon-resource
command can be used to install image files into icon
themes. The advantage of using an icon-name instead of
an absolute path is that with an icon-name the submenu
icon can be provided in several different sizes as well
as in several differently themed styles.
ENVIRONMENT VARIABLES
xdg-desktop-menu honours the following environment
variables:
XDGUTILSDEBUGLEVEL
Setting this environment variable to a non-zero
numerical value makes xdg-desktop-menu do more verbose
reporting on stderr. Setting a higher value increases
the verbosity.
XDGUTILSINSTALMODE
This environment variable can be used by the user or
administrator to override the installation mode. Valid
xdg-utils 1.0 Last change: 06/24/2007 5
User Commands XDG-DESKTOP-MENU(1)
values are user and system.
EXIT CODES
An exit code of 0 indicates success while a non-zero exit
code indicates failure. The following failure codes can be
returned:
1 Error in command line syntax.
2 One of the files passed on the command line did not
exist.
3 A required tool could not be found.
4 The action failed.
5 No permission to read one of the files passed on the
command line.
SEE ALSO
xdg-desktop-icon(1), xdg-icon-resource(1), xdg-mime(1)
EXAMPLES
The company ShinyThings Inc. has developed an application
named "WebMirror" and would like to add it to the
application menu. The company will use "shinythings" as its
vendor id. In order to add the application to the menu there
needs to be a .desktop file with a suitable Categories
entry:
shinythings-webmirror.desktop:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=webmirror
Icon=webmirror
Name=WebMirror
Name[nl]=WebSpiegel
Categories=Network;WebDevelopment;
Now the xdg-desktop-menu tool can be used to add the
shinythings-webmirror.desktop file to the desktop
application menu:
xdg-desktop-menu install ./shinythings-webmirror.desktop
xdg-utils 1.0 Last change: 06/24/2007 6
User Commands XDG-DESKTOP-MENU(1)
Note that for the purpose of this example the menu items are
available in two languages, English and Dutch. The language
code for Dutch is nl.
In the next example the company ShinyThings Inc. will add
its own submenu to the desktop application menu consisting
of a "WebMirror" menu item and a "WebMirror Admin Tool" menu
item.
First the company needs to create two .desktop files that
describe the two menu items. Since the items are to be added
to a new submenu it is not necassery to include a
Categories= line:
shinythings-webmirror.desktop:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=webmirror
Icon=shinythings-webmirror
Name=WebMirror
Name[nl]=WebSpiegel
shinythings-webmirror-admin.desktop:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=webmirror-admintool
Icon=shinythings-webmirror-admintool
Name=WebMirror Admin Tool
Name[nl]=WebSpiegel Administratie Tool
In addition a .directory file needs to be created to provide
a title and icon for the sub-menu itself:
shinythings-webmirror.directory:
[Desktop Entry]
Encoding=UTF-8
Icon=shinythings-webmirror-menu
Name=WebMirror
Name[nl]=WebSpiegel
xdg-utils 1.0 Last change: 06/24/2007 7
User Commands XDG-DESKTOP-MENU(1)
These file can now be installed with:
xdg-desktop-menu install ./shinythings-webmirror.directory \
./shinythings-webmirror.desktop ./shinythings-webmirror-admin.desktop
The menu entries could also be installed one by one:
xdg-desktop-menu install --noupdate ./shinythings-webmirror.directory \
./shinythings-webmirror.desktop
xdg-desktop-menu install --noupdate ./shinythings-webmirror.directory \
./shinythings-webmirror-admin.desktop
xdg-desktop-menu forceupdate
Although the result is the same it is slightly more
efficient to install all files at the same time.
The *.desktop and *.directory files reference icons with the
names webmirror, webmirror-admin and webmirror-menu which
should also be installed. In this example the icons are
installed in two different sizes, once with a size of 22x22
pixels and once with a size of 64x64 pixels:
xdg-icon-resource install --size 22 ./wmicon-22.png shinythings-webmirror
xdg-icon-resource install --size 22 ./wmicon-menu-22.png shinythings-webmirror-menu
xdg-icon-resource install --size 22 ./wmicon-admin-22.png shinythings-webmirror-admin
xdg-icon-resource install --size 64 ./wmicon-64.png shinythings-webmirror
xdg-icon-resource install --size 64 ./wmicon-menu-64.png shinythings-webmirror-menu
xdg-icon-resource install --size 64 ./wmicon-admin-64.png shinythings-webmirror-admin
AUTHOR
Kevin Krammer, Jeremy White.
xdg-utils 1.0 Last change: 06/24/2007 8
|