554 lines
43 KiB
HTML
554 lines
43 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Desktop Entry Specification</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.1" /><link rel="home" href="#index" title="Desktop Entry Specification" /><link rel="next" href="#introduction" title="Introduction" /></head><body><div class="article" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="index"></a>Desktop Entry Specification</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Preston</span> <span class="surname">Brown</span></h3><div class="affiliation"><div class="address"><p><br />
|
|||
|
<tt class="email"><<a href="mailto:pbrown@kde.org">pbrown@kde.org</a>></tt><br />
|
|||
|
</p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Blandford</span></h3><div class="affiliation"><div class="address"><p><br />
|
|||
|
<tt class="email"><<a href="mailto:jrb@redhat.com">jrb@redhat.com</a>></tt><br />
|
|||
|
</p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Owen</span> <span class="surname">Taylor</span></h3><div class="affiliation"><div class="address"><p><br />
|
|||
|
<tt class="email"><<a href="mailto:otaylor@gtk.org">otaylor@gtk.org</a>></tt><br />
|
|||
|
</p></div></div></div></div></div><div><p class="releaseinfo">Version 0.9.4</p></div></div><div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#introduction">Introduction</a></span></dt><dt><span class="sect1"><a href="#basic-format">Basic format of the file</a></span></dt><dt><span class="sect1"><a href="#value-types">Possible value types</a></span></dt><dt><span class="sect1"><a href="#recognized-keys">Recognized desktop entry keys</a></span></dt><dt><span class="sect1"><a href="#character-encoding">Character set encoding of the file</a></span></dt><dt><span class="sect1"><a href="#exec-variables">List of valid Exec parameter variables</a></span></dt><dt><span class="sect1"><a href="#mime-types">Registering MIME Types</a></span></dt><dd><dl><dt><span class="sect2"><a href="#mime-caching">Caching MIME Types</a></span></dt><dt><span class="sect2"><a href="#mime-priority">Priority of MIME Types and desktop files</a></span></dt></dl></dd><dt><span class="sect1"><a href="#extending">Extending the format</a></span></dt><dt><span class="appendix"><a href="#example">A. Example Desktop Entry File</a></span></dt><dt><span class="appendix"><a href="#kde-items">B. Currently reserved for use within KDE</a></span></dt><dt><span class="appendix"><a href="#deprecated-items">C. Deprecated Items</a></span></dt><dt><span class="appendix"><a href="#legacy-mixed">D. The Legacy-Mixed Encoding (Deprecated)</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="introduction"></a>Introduction</h2></div></div><div></div></div><p>
|
|||
|
Both the KDE and GNOME desktop environments have adopted a similar
|
|||
|
format for "desktop entries", or configuration files describing how a
|
|||
|
particular program is to be launched, how it appears in menus, etc.
|
|||
|
It is to the larger community's benefit that a unified standard be
|
|||
|
agreed upon by all parties such that interoperation between the two
|
|||
|
environments, and indeed any additional environments that implement
|
|||
|
the specification, becomes simpler.
|
|||
|
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-format"></a>Basic format of the file</h2></div></div><div></div></div><p>
|
|||
|
These desktop entry files should have the extension
|
|||
|
<tt class="filename">.desktop</tt>. Determining file type on basis of
|
|||
|
extension makes determining the file type very easy and quick.
|
|||
|
When no file extension is present, the desktop system should
|
|||
|
fall back to recognition via "magic detection". Desktop entries
|
|||
|
which describe how a directory is to be formatted/displayed
|
|||
|
should be simply called <tt class="filename">.directory</tt>.
|
|||
|
</p><p>
|
|||
|
The basic format of the desktop entry file requires that there be
|
|||
|
a "group" header named <tt class="literal">[Desktop Entry]</tt>. This
|
|||
|
"group" entry denotes that all <tt class="literal">{key,value}</tt>
|
|||
|
pairs following it belong in the Desktop Entry group. There may
|
|||
|
be other groups present in the file, but this is the most
|
|||
|
important group which explicitly needs to be supported. This
|
|||
|
group should also be used as the "magic key" for automatic MIME
|
|||
|
type detection. There should be nothing proceeding this group in
|
|||
|
the desktop entry file but possibly one or more comments (see
|
|||
|
below).
|
|||
|
</p><p>
|
|||
|
Group headers may not contain the characters <tt class="literal">[</tt> and
|
|||
|
<tt class="literal">]</tt> as those delimit the header.
|
|||
|
</p><p>
|
|||
|
Lines beginning with a <tt class="literal">#</tt> and blank lines are
|
|||
|
considered comments and will be ignored, however they should be
|
|||
|
preserved across reads and writes of the desktop entry file.
|
|||
|
</p><p>
|
|||
|
Compliant implementations MUST not remove any fields from the file,
|
|||
|
even if they don't support them. Such fields must be maintained in a
|
|||
|
list somewhere, and if the file is "rewritten", they will be included.
|
|||
|
This ensures that any desktop-specific extensions will be preserved
|
|||
|
even if another system accesses and changes the file.
|
|||
|
</p><p>
|
|||
|
Entries in the file are <tt class="literal">{key,value}</tt> pairs in the format:
|
|||
|
</p><pre class="programlisting">Key=Value</pre><p>
|
|||
|
Space before and after the equals sign should be ignored; the <tt class="literal">=</tt>
|
|||
|
sign is the actual delimiter.
|
|||
|
</p><p>
|
|||
|
The escape sequences <tt class="literal">\s</tt>, <tt class="literal">\n</tt>,
|
|||
|
<tt class="literal">\t</tt>, <tt class="literal">\r</tt>, and
|
|||
|
<tt class="literal">\\</tt> are supported, meaning ASCII space, newline,
|
|||
|
tab, carriage return, and backslash, respectively.
|
|||
|
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="value-types"></a>Possible value types</h2></div></div><div></div></div><p>
|
|||
|
The value types recognized are string, localestring, regexp,
|
|||
|
boolean (encoded as the string true/false), and numeric.
|
|||
|
</p><p>
|
|||
|
Values of type <tt class="literal">string</tt> must contain only ASCII
|
|||
|
characters excluding control characters. Values of type
|
|||
|
<tt class="literal">localestring</tt> are user displayable, and are
|
|||
|
encoded in UTF-8 unless the <tt class="constant">Legacy-Mixed</tt>
|
|||
|
Encoding is specified (see <a href="#legacy-mixed" title="D. The Legacy-Mixed Encoding (Deprecated)">Appendix D, <i>The Legacy-Mixed Encoding (Deprecated)</i></a>.)
|
|||
|
</p><p>
|
|||
|
Some keys can have multiple values; these should be separated by a
|
|||
|
semicolon. Those keys which have several values should have a
|
|||
|
semicolon as the trailing character. Semicolons in these values
|
|||
|
need to be escaped using <tt class="literal">\;</tt>.
|
|||
|
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="recognized-keys"></a>Recognized desktop entry keys</h2></div></div><div></div></div><p>
|
|||
|
Keys with type localestring may be postfixed by [<i class="replaceable"><tt>LOCALE</tt></i>],
|
|||
|
where <i class="replaceable"><tt>LOCALE</tt></i> is the locale type of the
|
|||
|
entry. <i class="replaceable"><tt>LOCALE</tt></i> must be of the form
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i>.<i class="replaceable"><tt>ENCODING</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>,
|
|||
|
where
|
|||
|
<tt class="literal">_<i class="replaceable"><tt>COUNTRY</tt></i></tt>,
|
|||
|
<tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt>,
|
|||
|
and <tt class="literal">@<i class="replaceable"><tt>MODIFIER</tt></i></tt>
|
|||
|
may be omitted. If a postfixed key occurs, the same
|
|||
|
key must be also present without the postfix.
|
|||
|
</p><p>
|
|||
|
When reading in the desktop entry file, the value of the key is
|
|||
|
selected by matching the current POSIX locale for the
|
|||
|
<tt class="varname">LC_MESSAGES</tt> category against the
|
|||
|
<i class="replaceable"><tt>LOCALE</tt></i> postfixes of all occurrences
|
|||
|
of the key, with the
|
|||
|
<tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt> part
|
|||
|
stripped. The
|
|||
|
<tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt> field is
|
|||
|
used only when the value of the <tt class="varname">Encoding</tt> key
|
|||
|
for the desktop entry file is <tt class="constant">Legacy-Mixed</tt>
|
|||
|
(see <a href="#legacy-mixed" title="D. The Legacy-Mixed Encoding (Deprecated)">Appendix D, <i>The Legacy-Mixed Encoding (Deprecated)</i></a>.)
|
|||
|
</p><p>
|
|||
|
The matching of is done as follows. If
|
|||
|
<tt class="varname">LC_MESSAGES</tt> is of the form
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i>.<i class="replaceable"><tt>ENCODING</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>,
|
|||
|
then it will match a key of the form
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>.
|
|||
|
If such a key does not exist, it will attempt to match
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i></tt>
|
|||
|
followed by
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>.
|
|||
|
Then, a match against <i class="replaceable"><tt>lang</tt></i> by itself
|
|||
|
will be attempted. Finally, if no matching key is found the
|
|||
|
required key without a locale specified is used. The encoding
|
|||
|
from the <tt class="varname">LC_MESSAGES</tt> value is ignored
|
|||
|
when matching.
|
|||
|
</p><p>
|
|||
|
If <tt class="varname">LC_MESSAGES</tt> does not have a <i class="replaceable"><tt>MODIFIER</tt></i>
|
|||
|
field, then no key with a modifier will be matched. Similarly, if
|
|||
|
<tt class="varname">LC_MESSAGES</tt> does not have a <i class="replaceable"><tt>COUNTRY</tt></i>
|
|||
|
field, then no key with a country specified will be matched. If
|
|||
|
<tt class="varname">LC_MESSAGES</tt> just has a <i class="replaceable"><tt>lang</tt></i> field, then
|
|||
|
it will do a straight match to a key with a similar value. The
|
|||
|
following table lists possible matches of various <tt class="varname">LC_MESSAGES</tt> values in
|
|||
|
the order in which they are matched. Note that the
|
|||
|
<i class="replaceable"><tt>ENCODING</tt></i> field isn't shown.
|
|||
|
</p><div class="table"><a id="id2444249"></a><p class="title"><b>Table 1. Locale Matching</b></p><table summary="Locale Matching" border="1"><colgroup><col /><col /></colgroup><thead><tr><th><tt class="varname">LC_MESSAGES</tt> value</th><th>Possible keys in order of matching</th></tr></thead><tbody><tr><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt></td><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>,
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i></tt>,
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>,
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i></tt>,
|
|||
|
default value
|
|||
|
</td></tr><tr><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i></tt></td><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i></tt>,
|
|||
|
<i class="replaceable"><tt>lang</tt></i>,
|
|||
|
default value
|
|||
|
</td></tr><tr><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt></td><td><tt class="literal"><i class="replaceable"><tt>lang</tt></i>@<i class="replaceable"><tt>MODIFIER</tt></i></tt>,
|
|||
|
<i class="replaceable"><tt>lang</tt></i>,
|
|||
|
default value
|
|||
|
</td></tr><tr><td><i class="replaceable"><tt>lang</tt></i></td><td><i class="replaceable"><tt>lang</tt></i>,
|
|||
|
default value
|
|||
|
</td></tr></tbody></table></div><p>
|
|||
|
For example, if the current value of the <tt class="varname">LC_MESSAGES</tt> category
|
|||
|
is <tt class="literal">sr_YU@Latn</tt> and the desktop file includes:
|
|||
|
</p><pre class="programlisting">
|
|||
|
Name=Foo
|
|||
|
Name[sr_YU]=...
|
|||
|
Name[sr@Latn]=...
|
|||
|
Name[sr]=...</pre><p>
|
|||
|
then the value of the <tt class="varname">Name</tt> keyed by <tt class="literal">sr_YU</tt> is used.
|
|||
|
</p><p>
|
|||
|
Case is significant. The keys <tt class="varname">Name</tt> and <tt class="varname">NAME</tt> are not equivalent.
|
|||
|
The same holds for group names. Key values are case sensitive as
|
|||
|
well.
|
|||
|
</p><p>
|
|||
|
Keys are either OPTIONAL or REQUIRED. If a key is optional it may or
|
|||
|
may not be present in the file. However, if it isn't, the
|
|||
|
implementation of the standard should not blow up, it must provide
|
|||
|
some sane defaults. Additionally, keys either MUST or MAY be
|
|||
|
supported by a particular implementation.
|
|||
|
</p><p>
|
|||
|
Some keys only make sense in the context when another particular key
|
|||
|
is also present.
|
|||
|
</p><p>
|
|||
|
Some example keys: <tt class="varname">Name[C]</tt>, <tt class="varname">Comment[it]</tt>.
|
|||
|
</p><div class="table"><a id="id2444496"></a><p class="title"><b>Table 2. Standard Keys</b></p><table summary="Standard Keys" border="1"><colgroup><col /><col /><col /><col /><col /></colgroup><thead><tr><th>Key</th><th>Description</th><th>Value Type</th><th>REQ?</th><th>MUST?</th><th>Type</th></tr></thead><tbody><tr><td><a id="key-type"></a><tt class="varname">Type</tt></td><td>
|
|||
|
There are 4 types of desktop entries:
|
|||
|
<tt class="constant">Application</tt>,
|
|||
|
<tt class="constant">Link</tt>, <tt class="constant">FSDevice</tt>
|
|||
|
and <tt class="constant">Directory</tt>.
|
|||
|
</td><td>string</td><td>YES</td><td>YES</td></tr><tr><td><a id="key-version"></a><tt class="varname">Version</tt></td><td>
|
|||
|
Version of Desktop Entry Specification
|
|||
|
(While the version field is not required to be present,
|
|||
|
it should be in all newer implementations of the Desktop
|
|||
|
Entry Specification. If the version number is not
|
|||
|
present, a "pre-standard" desktop entry file is to be
|
|||
|
assumed).
|
|||
|
</td><td>numeric</td><td>NO</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-encoding"></a><tt class="varname">Encoding</tt></td><td>
|
|||
|
Encoding of the whole desktop entry file
|
|||
|
(<tt class="constant">UTF-8</tt> or
|
|||
|
<tt class="constant">Legacy-Mixed</tt>).
|
|||
|
</td><td>string</td><td>YES</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-name"></a><tt class="varname">Name</tt></td><td>
|
|||
|
Specific name of the application, for example "Mozilla".
|
|||
|
</td><td>localestring</td><td>YES</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-genericname"></a><tt class="varname">GenericName</tt></td><td>
|
|||
|
Generic name of the application, for example "Web Browser".
|
|||
|
</td><td>localestring</td><td>NO</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-nodisplay"></a><tt class="varname">NoDisplay</tt></td><td><tt class="varname">NoDisplay</tt> means "this application exists, but don't display it in the menus".
|
|||
|
This can be useful to e.g. associate this application with MIME types, so that
|
|||
|
it gets launched from a file manager (or other apps), without having a menu
|
|||
|
entry for it (there are tons of good reasons for this, including e.g. the
|
|||
|
<tt class="literal">netscape -remote</tt>, or <tt class="literal">kfmclient openURL</tt> kind of stuff).
|
|||
|
</td><td>boolean</td><td>NO</td><td>NO</td><td>1-4</td></tr><tr><td><a id="key-comment"></a><tt class="varname">Comment</tt></td><td>
|
|||
|
Tooltip for the entry, for example "View sites on the
|
|||
|
Internet", should not be redundant with <tt class="varname">Name</tt> or
|
|||
|
<tt class="varname">GenericName</tt>.
|
|||
|
</td><td>localestring</td><td>NO</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-icon"></a><tt class="varname">Icon</tt></td><td>
|
|||
|
Icon to display in file manager, menus, etc. If the
|
|||
|
name is an absolute path, the given file will be
|
|||
|
used. If the name is not an absolute path, an
|
|||
|
implementation-dependent search algorithm will be used
|
|||
|
to locate the icon. Icons may be localized with the
|
|||
|
<tt class="literal">Icon[xx]=</tt> syntax.
|
|||
|
</td><td>string</td><td>NO</td><td>YES</td><td>1-4</td></tr><tr><td><a id="key-hidden"></a><tt class="varname">Hidden</tt></td><td><tt class="varname">Hidden</tt> should have been called <tt class="varname">Deleted</tt>.
|
|||
|
It means the user deleted (at his level)
|
|||
|
something that was present (at an upper level, e.g. in the system dirs). It's
|
|||
|
strictly equivalent to the <tt class="filename">.desktop</tt> file not existing at all, as far as that user is
|
|||
|
concerned. This can also be used to "uninstall" existing files (e.g. due to a renaming)
|
|||
|
- by letting <tt class="literal">make install</tt> install a file with <tt class="literal">Hidden=true</tt> in it.
|
|||
|
</td><td>boolean</td><td>NO</td><td>NO</td><td>1-4</td></tr><tr><td><a id="key-filepattern"></a><tt class="varname">FilePattern</tt></td><td>
|
|||
|
A list of regular expressions to match against for a
|
|||
|
file manager to determine if this entry's icon should be
|
|||
|
displayed. Usually simply the name of the main
|
|||
|
executable and friends.
|
|||
|
</td><td>regexp(s)</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-tryexec"></a><tt class="varname">TryExec</tt></td><td>
|
|||
|
File name of a binary on disk used to determine if the
|
|||
|
program is actually installed. If not, entry may not
|
|||
|
show in menus, etc.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-exec"></a><tt class="varname">Exec</tt></td><td>
|
|||
|
Program to execute, possibly with arguments.
|
|||
|
</td><td>string</td><td>NO</td><td>YES</td><td>1</td></tr><tr><td><a id="key-path"></a><tt class="varname">Path</tt></td><td>
|
|||
|
If entry is of type <tt class="constant">Application</tt>, the working directory to run the program in.
|
|||
|
</td><td>string</td><td>NO</td><td>YES</td><td>1</td></tr><tr><td><a id="key-terminal"></a><tt class="varname">Terminal</tt></td><td>
|
|||
|
Whether the program runs in a terminal window.
|
|||
|
</td><td>boolean</td><td>NO</td><td>YES</td><td>1</td></tr><tr><td><a id="key-swallowtitle"></a><tt class="varname">SwallowTitle</tt></td><td>
|
|||
|
If entry is swallowed onto the panel, this should be the title of the window.
|
|||
|
</td><td>localestring</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-swallowexec"></a><tt class="varname">SwallowExec</tt></td><td>
|
|||
|
Program to exec if swallowed app is clicked.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-actions"></a><tt class="varname">Actions</tt></td><td>
|
|||
|
Additional actions possible, see MIME type discussion in <a href="#mime-types" title="Registering MIME Types">the section called “Registering MIME Types”</a>.
|
|||
|
</td><td>string(s)</td><td>NO</td><td>YES</td><td>1</td></tr><tr><td><a id="key-mimetype"></a><tt class="varname">MimeType</tt></td><td>
|
|||
|
The MIME type(s) supported by this entry.
|
|||
|
</td><td>strings(s)</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-sortorder"></a><tt class="varname">SortOrder</tt></td><td>
|
|||
|
This may specify the order in which to display files.
|
|||
|
</td><td>string(s)</td><td>NO</td><td>NO</td><td>4</td></tr><tr><td><a id="key-dev"></a><tt class="varname">Dev</tt></td><td>
|
|||
|
The device to mount.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>3</td></tr><tr><td><a id="key-fstype"></a><tt class="varname">FSType</tt></td><td>
|
|||
|
The type of file system to try to mount.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>3</td></tr><tr><td><a id="key-mountpoint"></a><tt class="varname">MountPoint</tt></td><td>
|
|||
|
The mount point of the device in question.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>3</td></tr><tr><td><a id="key-readonly"></a><tt class="varname">ReadOnly</tt></td><td>
|
|||
|
Specifies whether or not the device is read only.
|
|||
|
</td><td>boolean</td><td>NO</td><td>NO</td><td>3</td></tr><tr><td><a id="key-unmounticon"></a><tt class="varname">UnmountIcon</tt></td><td>
|
|||
|
Icon to display when device is not mounted. Mounted devices display icon from the <tt class="varname">Icon</tt> key.
|
|||
|
<tt class="varname">UnmountIcon</tt>s may be localized with the <tt class="literal">UnmountIcon[xx]=</tt> syntax.
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>3</td></tr><tr><td><a id="key-url"></a><tt class="varname">URL</tt></td><td>
|
|||
|
If entry is Link type, the URL to access.
|
|||
|
</td><td>string</td><td>NO</td><td>YES</td><td>2</td></tr><tr><td><a id="key-categories"></a><tt class="varname">Categories</tt></td><td>
|
|||
|
Categories in which the entry should be shown in a menu (for
|
|||
|
possible values see the <a href="http://www.freedesktop.org/Standards/menu-spec" target="_top">Desktop
|
|||
|
Menu Specification</a>).
|
|||
|
</td><td>string(s)</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-onlyshowin"></a><tt class="varname">OnlyShowIn</tt>, <tt class="varname">NotShowIn</tt></td><td>
|
|||
|
A list of strings identifying the environments that should
|
|||
|
display/not display a given desktop entry. Only one of
|
|||
|
these keys, either <tt class="varname">OnlyShowIn</tt> or
|
|||
|
<tt class="varname">NotShowIn</tt>, may appear in a group (for
|
|||
|
possible values see the <a href="http://www.freedesktop.org/Standards/menu-spec" target="_top">Desktop
|
|||
|
Menu Specification</a>).
|
|||
|
</td><td>string(s)</td><td>NO</td><td>NO</td><td>1-4</td></tr><tr><td><a id="key-startupnotify"></a><tt class="varname">StartupNotify</tt></td><td>
|
|||
|
If true, it is KNOWN that the application will send a "remove"
|
|||
|
message when started with the <tt class="envar">DESKTOP_LAUNCH_ID</tt> environment variable
|
|||
|
set (see the <a href="http://www.freedesktop.org/Standards/startup-notification-spec" target="_top">Startup Notification Protocol Specification</a> for more details).
|
|||
|
</td><td>boolean</td><td>NO</td><td>NO</td><td>1</td></tr><tr><td><a id="key-startupwmclass"></a><tt class="varname">StartupWMClass</tt></td><td>
|
|||
|
If true, it is KNOWN that the application will map at least one
|
|||
|
window with the given string as its WM class or WM name hint (see the <a href="http://www.freedesktop.org/Standards/startup-notification-spec" target="_top">Startup Notification Protocol Specification</a> for more details).
|
|||
|
</td><td>string</td><td>NO</td><td>NO</td><td>1</td></tr></tbody></table></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="character-encoding"></a>Character set encoding of the file</h2></div></div><div></div></div><p>
|
|||
|
Desktop entry files are encoded as lines of 8-bit characters separated
|
|||
|
by LF characters.
|
|||
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
|||
|
Key names must contain only the characters <tt class="literal">A-Za-z0-9-</tt>
|
|||
|
</p></li><li><p>
|
|||
|
Group names may contain all ASCII characters except for
|
|||
|
<tt class="literal">[</tt> and <tt class="literal">]</tt> and control characters.
|
|||
|
</p></li><li><p>
|
|||
|
Values of type string may contain all ASCII characters except
|
|||
|
for control characters.
|
|||
|
</p></li><li><p>
|
|||
|
Values of type boolean must either be the string <tt class="literal">true</tt> or
|
|||
|
<tt class="literal">false</tt>.
|
|||
|
</p></li><li><p>
|
|||
|
Numeric values must be a valid floating point number as recognized
|
|||
|
by the <tt class="literal">%f</tt> specifier for <tt class="function">scanf</tt>.
|
|||
|
</p></li></ul></div><p>
|
|||
|
Comment lines are uninterpreted and may contain any character
|
|||
|
(except for LF). However, using UTF-8 for comment lines that
|
|||
|
contain characters not in ASCII is encouraged.
|
|||
|
</p><p>
|
|||
|
The encoding for values of type localestring is determined by the
|
|||
|
<tt class="varname">Encoding</tt> field.
|
|||
|
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="exec-variables"></a>List of valid <tt class="varname">Exec</tt> parameter variables</h2></div></div><div></div></div><p>
|
|||
|
Each <tt class="varname">Exec</tt> field may take a number of arguments which will be
|
|||
|
expanded by the file manager or program launcher and passed to the
|
|||
|
program if necessary.
|
|||
|
</p><p>
|
|||
|
Literal <tt class="literal">%</tt> characters must be escaped as <tt class="literal">%%</tt>, and adding new
|
|||
|
format characters is not allowed. It's a fatal error to have an
|
|||
|
<tt class="varname">Exec</tt> field with a format character not given in the spec (exception
|
|||
|
to this are the deprecated format characters which can be ignored,
|
|||
|
that is expanded to no parameters, by the implementation).
|
|||
|
Again for emphasis: <span class="emphasis"><em>nonstandard extensions are
|
|||
|
not allowed here - you must add an <tt class="varname">X-Foo-Exec</tt> field if you have
|
|||
|
nonstandard <tt class="varname">Exec</tt> lines</em></span>.
|
|||
|
</p><p>
|
|||
|
The escaping of the exec parameters is done in the way the mailcap
|
|||
|
specification describes. Take a look at
|
|||
|
<a href="http://www.ietf.org/rfc/rfc1524" target="_top">RFC 1524</a>
|
|||
|
for more information.
|
|||
|
</p><p>
|
|||
|
Recognized fields are as follows:
|
|||
|
</p><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><tbody><tr><td><tt class="literal">%f</tt></td><td>
|
|||
|
A single file name, even if multiple files are selected. The system
|
|||
|
reading the desktop entry should recognize that the program in
|
|||
|
question cannot handle multiple file arguments, and it should
|
|||
|
should probably spawn and execute multiple copies of a program
|
|||
|
for each selected file if the program is not able to handle
|
|||
|
additional file arguments. If files are not on the local file system
|
|||
|
(i.e. are on HTTP or FTP locations), the files will be copied to the local
|
|||
|
file system and <tt class="literal">%f</tt> will be expanded to point at the temporary
|
|||
|
file. Used for programs that do not understand the URL syntax.
|
|||
|
</td></tr><tr><td><tt class="literal">%F</tt></td><td>
|
|||
|
A list of files. Use for apps that can open several local
|
|||
|
files at once.
|
|||
|
</td></tr><tr><td><tt class="literal">%u</tt></td><td>
|
|||
|
A single URL.
|
|||
|
</td></tr><tr><td><tt class="literal">%U</tt></td><td>
|
|||
|
A list of URLs.
|
|||
|
</td></tr><tr><td><tt class="literal">%d</tt></td><td>
|
|||
|
Directory containing the file that would be passed in a <tt class="literal">%f</tt> field.
|
|||
|
</td></tr><tr><td><tt class="literal">%D</tt></td><td>
|
|||
|
List of directories containing the files that would be
|
|||
|
passed in to a <tt class="literal">%F</tt> field.
|
|||
|
</td></tr><tr><td><tt class="literal">%n</tt></td><td>
|
|||
|
A single filename (without path).
|
|||
|
</td></tr><tr><td><tt class="literal">%N</tt></td><td>
|
|||
|
A list of filenames (without paths).
|
|||
|
</td></tr><tr><td>%i</td><td>
|
|||
|
The <tt class="varname">Icon</tt> field of the desktop entry
|
|||
|
expanded as two parameters, first
|
|||
|
<tt class="literal">--icon</tt> and then the contents of the
|
|||
|
<tt class="varname">Icon</tt> field. Should not expand as any
|
|||
|
parameters if the <tt class="varname">Icon</tt> field is empty
|
|||
|
or missing.
|
|||
|
</td></tr><tr><td><tt class="literal">%c</tt></td><td>
|
|||
|
The translated <tt class="varname">Name</tt> field associated with the desktop entry.
|
|||
|
</td></tr><tr><td><tt class="literal">%k</tt></td><td>
|
|||
|
The location of the desktop file as either a URI (if for
|
|||
|
example gotten from the vfolder system) or a local
|
|||
|
filename or empty if no location is known.
|
|||
|
</td></tr><tr><td><tt class="literal">%v</tt></td><td>
|
|||
|
The name of the <tt class="varname">Device</tt> entry in the desktop file.
|
|||
|
</td></tr></tbody></table></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="mime-types"></a>Registering MIME Types</h2></div></div><div></div></div><p>
|
|||
|
The <tt class="varname">MimeType</tt> key is used to indicate the MIME
|
|||
|
Types that an application knows how to handle. Applications that
|
|||
|
can handle multiple MIME Types would list all of the ones it can
|
|||
|
handle in a ';' separated list, as normal. It is expected that
|
|||
|
for some applications this list could become long. An application
|
|||
|
is expected to be able to reasonably open files of these types
|
|||
|
using the command listed in the <tt class="varname">Exec</tt> keyword.
|
|||
|
</p><p>
|
|||
|
There should be no priority for MIME Types in this field, or any
|
|||
|
form of priority in the desktop file. Priority for applications
|
|||
|
is handled external to the <tt class="filename">.desktop</tt> files.
|
|||
|
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="mime-caching"></a>Caching MIME Types</h3></div></div><div></div></div><p>
|
|||
|
To make parsing of all the desktop files less costly, a
|
|||
|
<span><b class="command">update-desktop-database</b></span> program is provided
|
|||
|
that will generate a cache file. The concept is identical to
|
|||
|
that of the 'update-mime-database' program in that it lets
|
|||
|
applications avoid reading in (potentially) hundreds of files.
|
|||
|
It will need to be run after every desktop file is installed.
|
|||
|
One cache file is created for every directory in
|
|||
|
$XDG_DATA_DIRS/applications/, and will create a file called
|
|||
|
$XDG_DATA_DIRS/applications/mimeinfo.cache.
|
|||
|
</p><p>
|
|||
|
The format of the cache is similar to that of the desktop file,
|
|||
|
and is just a list mapping mime-types to desktop files. Here's
|
|||
|
a quick example of what it would look like:
|
|||
|
</p><pre class="programlisting">application/x-foo=foo.desktop;bar.desktop;
|
|||
|
application/x-bar=bar.desktop;</pre><p>
|
|||
|
Each MIME Type is listed only once per cache file, and the
|
|||
|
desktop-id is expected to exist in that particular directory.
|
|||
|
That is to say, if the cache file is located at
|
|||
|
<tt class="filename">/usr/share/applications/mimeinfo.cache</tt>,
|
|||
|
bar.desktop refers to the file
|
|||
|
<tt class="filename">/usr/share/applications/bar.desktop</tt>.
|
|||
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="mime-priority"></a>Priority of MIME Types and desktop files</h3></div></div><div></div></div><p>
|
|||
|
There is also a preference list to determine preferred
|
|||
|
application of a given MIME Type. It defines the 'default'
|
|||
|
application to handle a given MIME Type. It has the same format
|
|||
|
as the cache list.
|
|||
|
</p><pre class="programlisting">mime/type=desktop-id.desktop;</pre><p>
|
|||
|
If a mime type is listed multiple times (either in the same
|
|||
|
file, or in another file further down the search path), the
|
|||
|
latter mention wins. If a listed file doesn't exist, or is
|
|||
|
precluded through the <tt class="varname">OnlyShowIn</tt> or
|
|||
|
<tt class="varname">NotShowIn</tt> files, they should be ignored.
|
|||
|
This means that applications will have to keep a history of the
|
|||
|
preferred applications that they run into, so that if the top
|
|||
|
desktop file for a given MIME Type isn't available, the second
|
|||
|
one can be tested, etc.
|
|||
|
</p><p>
|
|||
|
It is also worth noting who this mechanism is defined for. It
|
|||
|
is primarily intended for use by distributors/sysadmins to
|
|||
|
provide a sane set of defaults for their users. Additionally,
|
|||
|
users themselves can use this mechanism to override the user
|
|||
|
defaults. We intentionally don't provide a way for application
|
|||
|
authors themselves to list themselves as the default for a given
|
|||
|
type, as we felt that that cannot work.
|
|||
|
</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="extending"></a>Extending the format</h2></div></div><div></div></div><p>
|
|||
|
If the standard is to be amended with a new <tt class="literal">{key,value}</tt> pair which
|
|||
|
should be applicable to all supporting parties, a group discussion
|
|||
|
will take place. This is the preferred method for introducing
|
|||
|
changes. If one particular party wishes to add a field for personal
|
|||
|
use, they should prefix the key with the string <tt class="varname">X-<i class="replaceable"><tt>PRODUCT</tt></i></tt>,
|
|||
|
e.g. <tt class="varname">X-NewDesktop-Foo</tt>, following the precedent set by other IETF and RFC
|
|||
|
standards.
|
|||
|
</p><p>
|
|||
|
Alternatively, fields can be placed in their own group, where they may
|
|||
|
then have arbitrary key names. If this is the case, the group should
|
|||
|
follow the scheme outlined above,
|
|||
|
i.e. <tt class="literal">[X-<i class="replaceable"><tt>PRODUCT</tt></i>
|
|||
|
<i class="replaceable"><tt>GROUPNAME</tt></i>]</tt> or
|
|||
|
something similar. These steps will avoid namespace clashes between
|
|||
|
different yet similar environments.
|
|||
|
</p></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="example"></a>A. Example Desktop Entry File</h2></div></div><div></div></div><pre class="programlisting">
|
|||
|
[Desktop Entry]
|
|||
|
Version=1.0
|
|||
|
Type=Application
|
|||
|
Encoding=UTF-8
|
|||
|
Name=Foo Viewer
|
|||
|
Comment=The best viewer for Foo objects available!
|
|||
|
TryExec=fooview
|
|||
|
Exec=fooview %F
|
|||
|
Icon=fooview.png
|
|||
|
MimeType=image/x-foo
|
|||
|
X-KDE-Library=libfooview
|
|||
|
X-KDE-FactoryName=fooviewfactory
|
|||
|
X-KDE-ServiceType=FooService
|
|||
|
|
|||
|
[Desktop Action Inverse]
|
|||
|
Exec=fooview --inverse %f
|
|||
|
Name=Foo Viewer (inverse image)
|
|||
|
|
|||
|
[Desktop Action Edit]
|
|||
|
Exec=fooview --edit %f
|
|||
|
Name=Foo Viewer (edit image)
|
|||
|
Icon=fooview-edit.png</pre></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="kde-items"></a>B. Currently reserved for use within KDE</h2></div></div><div></div></div><p>
|
|||
|
During the time KDE added some extensions that are currently not
|
|||
|
prefixed by the <tt class="literal">X-</tt> prefix, but should be in
|
|||
|
future KDE releases.
|
|||
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
|||
|
Keys added by KDE: <tt class="varname">ServiceTypes</tt>,
|
|||
|
<tt class="varname">DocPath</tt>, <tt class="varname">Keywords</tt>,
|
|||
|
<tt class="varname">InitialPreference</tt>
|
|||
|
</p></li><li><p>
|
|||
|
Types added by KDE: <tt class="constant">ServiceType</tt>, <tt class="constant">Service</tt>
|
|||
|
</p></li></ul></div></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="deprecated-items"></a>C. Deprecated Items</h2></div></div><div></div></div><p>
|
|||
|
As this standard is quite old there are some deprecated items that
|
|||
|
may or may not be used by several implementations.
|
|||
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
|||
|
<tt class="literal">Type=MimeType</tt> is deprecated as there is a
|
|||
|
new standard for this now, see the <a href="http://www.freedesktop.org/Standards/shared-mime-info-spec" target="_top">Shared
|
|||
|
MIME-info Database specification</a> for more
|
|||
|
information. In consequence the Keys
|
|||
|
<tt class="varname">Patterns</tt> (various file name extensions
|
|||
|
associated with the MIME type) and
|
|||
|
<tt class="varname">DefaultApp</tt> (the default application
|
|||
|
associated with this MIME type) are also deprecated.
|
|||
|
</p></li><li><p>
|
|||
|
Using <tt class="filename">.kdelnk</tt> instead of
|
|||
|
<tt class="filename">.desktop</tt> as the file extension is
|
|||
|
deprecated.
|
|||
|
</p></li><li><p>
|
|||
|
Using <tt class="literal">[KDE Desktop Entry]</tt> instead of
|
|||
|
<tt class="literal">[Desktop Entry]</tt> as header is deprecated.
|
|||
|
</p></li><li><p>
|
|||
|
<tt class="literal">Encoding=Legacy-Mixed</tt>, which allowed
|
|||
|
localestrings in the encoding of the specified locale, is
|
|||
|
deprecated.
|
|||
|
</p></li><li><p>
|
|||
|
Deprecated <tt class="varname">Exec</tt> parameters:
|
|||
|
<tt class="literal">%m</tt> (the mini-icon associated with the
|
|||
|
desktop entry, this should be expanded as two parameters,
|
|||
|
<tt class="literal">--miniicon</tt> and the content of the
|
|||
|
<tt class="varname">MiniIcon</tt> field, it can also be ignored by
|
|||
|
expanding it to no parameters).
|
|||
|
</p></li><li><p>
|
|||
|
Deprecated keys: <tt class="varname">MiniIcon</tt> (small icon for
|
|||
|
menus, etc), <tt class="varname">TerminalOptions</tt> (if the
|
|||
|
program runs in a terminal, any options that should be
|
|||
|
passed to the terminal emulator before actually executing
|
|||
|
the program), <tt class="varname">Protocols</tt>,
|
|||
|
<tt class="varname">Extensions</tt>,
|
|||
|
<tt class="varname">BinaryPattern</tt>,
|
|||
|
<tt class="varname">MapNotify</tt>.
|
|||
|
</p></li><li><p>
|
|||
|
Historically some booleans have been represented by the numeric
|
|||
|
entries <tt class="constant">0</tt> or <tt class="constant">1</tt>. With
|
|||
|
this version of the standard they are now to be represented as a
|
|||
|
boolean string. However, if an implementation is reading a pre-1.0
|
|||
|
desktop entry, it should interpret <tt class="constant">0</tt> and
|
|||
|
<tt class="constant">1</tt> as <tt class="constant">false</tt> and
|
|||
|
<tt class="constant">true</tt>, respectively.
|
|||
|
</p></li><li><p>
|
|||
|
Historically lists have been comma separated. This is inconsistent with other lists which are separated by a semicolon. When reading a pre-1.0 desktop entry, comma separated lists should continue to be supported.
|
|||
|
</p></li></ul></div></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="legacy-mixed"></a>D. The <tt class="constant">Legacy-Mixed</tt> Encoding (Deprecated)</h2></div></div><div></div></div><p>
|
|||
|
The <tt class="constant">Legacy-Mixed</tt> encoding corresponds to the traditional encoding
|
|||
|
of desktop files in older versions of the GNOME and KDE desktop
|
|||
|
files. In this encoding, the encoding of each localestring key
|
|||
|
is determined by the locale tag for that key, if any. For keys
|
|||
|
without a locale tag, the value must contain only ASCII
|
|||
|
characters.
|
|||
|
</p><p>
|
|||
|
If the file specifies an unsupported encoding, the implementation
|
|||
|
should either ignore the file, or, if the user has requested a direct
|
|||
|
operation on the file (such as opening it for editing), display an
|
|||
|
appropriate error indication to the user.
|
|||
|
</p><p>
|
|||
|
In the absence of an <tt class="varname">Encoding</tt> line, the implementation may choose
|
|||
|
to autodetect the encoding of the file by using such factors
|
|||
|
as:
|
|||
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
|||
|
The location of the file on the file system
|
|||
|
</p></li><li><p>
|
|||
|
Whether the contents of the file are valid UTF-8
|
|||
|
</p></li></ul></div><p>
|
|||
|
If the implementation does not perform such auto-detection, it should
|
|||
|
treat a file without an <tt class="varname">Encoding</tt> key in the same way as a file with an
|
|||
|
unsupported <tt class="varname">Encoding</tt> Key.
|
|||
|
</p><p>
|
|||
|
If the locale tag includes an <tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt> part, then that determines
|
|||
|
the encoding for the line. Otherwise, the encoding is determined
|
|||
|
by the language, or
|
|||
|
<tt class="literal"><i class="replaceable"><tt>lang</tt></i>_<i class="replaceable"><tt>COUNTRY</tt></i></tt>
|
|||
|
pair from the locale tag, according to the following table.
|
|||
|
</p><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Encoding</th><th>Aliases</th><th>Tags</th></tr></thead><tbody><tr><td>ARMSCII-8 (*)</td><td> </td><td>hy</td></tr><tr><td>BIG5</td><td> </td><td>zh_TW</td></tr><tr><td>CP1251</td><td> </td><td>be bg</td></tr><tr><td>EUC-CN</td><td>GB2312</td><td>zh_CN</td></tr><tr><td>EUC-JP</td><td> </td><td>ja</td></tr><tr><td>EUC-KR</td><td> </td><td>ko</td></tr><tr><td>GEORGIAN-ACADEMY (*)</td><td> </td><td> </td></tr><tr><td>GEORGIAN-PS (*)</td><td> </td><td>ka</td></tr><tr><td>ISO-8859-1</td><td> </td><td>br ca da de en es eu fi fr gl it nl no pt sv wa</td></tr><tr><td>ISO-8859-2</td><td> </td><td>cs hr hu pl ro sk sl sq sr</td></tr><tr><td>ISO-8859-3 </td><td> </td><td>eo</td></tr><tr><td>ISO-8859-5</td><td> </td><td>mk sp</td></tr><tr><td>ISO-8859-7</td><td> </td><td>el</td></tr><tr><td>ISO-8859-9</td><td> </td><td>tr</td></tr><tr><td>ISO-8859-13</td><td> </td><td>lt lv mi</td></tr><tr><td>ISO-8859-14</td><td> </td><td>cy ga</td></tr><tr><td>ISO-8859-15</td><td> </td><td>et</td></tr><tr><td>KOI8-R</td><td> </td><td>ru</td></tr><tr><td>KOI8-U</td><td> </td><td>uk</td></tr><tr><td>TCVN-5712 (*)</td><td>TCVN</td><td>vi</td></tr><tr><td>TIS-620</td><td> </td><td>th</td></tr><tr><td>VISCII</td><td> </td><td> </td></tr></tbody></table></div><div class="variablelist"><dl><dt><span class="term">Encoding</span></dt><dd><p>
|
|||
|
The name given here is listed here is typically the
|
|||
|
canonical name for the encoding in the GNU C Library's
|
|||
|
<tt class="function">iconv</tt> facility. Encodings marked with (*) are not
|
|||
|
currently supported by the GNU C Library; for this reason,
|
|||
|
implementations may choose to ignore lines in desktop
|
|||
|
files that resolve to this encoding. Desktop files with
|
|||
|
these encodings are currently rare or non-existent.
|
|||
|
</p></dd><dt><span class="term">Aliases</span></dt><dd><p>
|
|||
|
Other names for the encoding found in existing desktop
|
|||
|
files.
|
|||
|
</p></dd><dt><span class="term">Tags</span></dt><dd><p>
|
|||
|
Language tags for which this is the default encoding.
|
|||
|
</p></dd></dl></div><p>
|
|||
|
This table above covers all tags and encodings that are known to
|
|||
|
be currently in use. Implementors may choose to support
|
|||
|
encodings not in the above set. For tags without defaults listed
|
|||
|
in the above table, desktop file creators must specify the
|
|||
|
<tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt> part of the locale tag.
|
|||
|
</p><p>
|
|||
|
Matching the <tt class="literal">.<i class="replaceable"><tt>ENCODING</tt></i></tt> part of the locale tag against a locale
|
|||
|
name or alias should be done by stripping all punctuation
|
|||
|
characters from both the tag and the name or alias, converting
|
|||
|
both name and alias to lowercase, and comparing the result.
|
|||
|
This is necessary because, for example, <tt class="literal">Big5</tt> is frequently
|
|||
|
found instead of <tt class="literal">BIG5</tt> and <tt class="literal">georgianacademy</tt> instead of
|
|||
|
<tt class="literal">GEORGIAN-ACADEMY</tt>. Desktop files creators should, however, use
|
|||
|
the name as it appears in the "Encoding" column above.
|
|||
|
</p></div></div></body></html>
|