diff --git a/desktop-entry/desktop-entry-spec.xml b/desktop-entry/desktop-entry-spec.xml
index c555d7281ba3cbafb07ff89436fa035c97b3840a..5d214b7a2ca7c74f88659e8fb857fb28d10ed696 100644
--- a/desktop-entry/desktop-entry-spec.xml
+++ b/desktop-entry/desktop-entry-spec.xml
@@ -71,6 +71,15 @@
+
+ Zander
+ Brown
+
+
+ zbrown@gnome.org
+
+
+
@@ -643,6 +652,8 @@
Terminal
Whether the program runs in a terminal window.
+ See Terminal key
+ for information about how this is handled
booleanNO
@@ -948,6 +959,114 @@
%U field codes may only be used as an argument on their own.
+
+ The Terminal key
+
+ The Terminal key (when true)
+ indicates that Exec should be run by a terminal
+ emulator rather than the desktop environment
+
+
+ Entries of
+ Type=Application
+ can declare themselves as "terminal handlers" which the desktop environment
+ may use to handle "terminal apps", this is done though special MIME Types
+ allowing the user to select a default handler through the provisions of the
+
+ MIME Applications Associations Specification
+
+
+ All handlers MUST implement x-terminal-handler/standard
+ but may choose to support x-terminal-handler/enhanced,
+ desktop environments should only consider
+ x-terminal-handler/standard when selecting a handler
+
+
+ It is RECOMMENDED that desktop environments include fallback mechanism to
+ use when no handlers are available
+
+
+ Standard handlers (x-terminal-handler/standard)
+
+ Terminal handlers MUST provide this interface
+
+
+
+
+ -e <command><flags*> flag
+
+
+ -e should consume all further arguments
+ and pass them to the command being run, for example
+ terminal -a demo -e ls -la would start
+ a terminal for ls -la
+
+
+ Implementations MUST ensure -e is the
+ final flag provided to the handler
+
+
+
+
+ Emulates a DEC VT100 terminal (or compatible)
+
+
+
+
+ Note that
+
+ Debian's x-terminal-emulator is
+ a valid x-terminal-handler/standard
+ implementation
+
+
+
+ Enhanced handlers (x-terminal-handler/enhanced)
+
+ Terminal handlers MAY provide this interface
+
+
+
+
+ --desktop-id=<desktop-id> flag
+
+
+ This flag tells the handler that is being run to handle
+ <desktop-id>, this allows the handler to
+ provide various integrations
+
+
+ Possible integrations include:
+
+
+
+ Setting window title according to the Name
+ key
+
+
+
+
+ Setting window icon according to the Icon
+ key
+
+
+
+
+ Register a <desktop-id> specific
+ instance with the session manager
+
+
+
+
+
+ --desktop-id should be passed before
+ -e, for example
+ my-terminal --desktop-id=htop.desktop -e htop
+
+
+
+
+ D-Bus Activation
@@ -1273,6 +1392,19 @@ Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new
+
+ Example terminal hander
+
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=My Terminal
+Comment=An awesome enhanced terminal emulator
+Exec=my-terminal
+Icon=my-terminal
+MimeType=x-terminal-handler/standard;x-terminal-handler/enhanced;
+
+ Currently reserved for use within KDE
@@ -1627,6 +1759,13 @@ Icon=fooview-new
Changes to this Specification
+
+ Changes from version 1.2 to 1.3
+
+ Formalise handling of entries with
+ Terminal=True
+
+ Changes from version 1.1 to 1.2