| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>gapplication: GIO Reference Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="GIO Reference Manual"> |
| <link rel="up" href="tools.html" title="GIO Tools"> |
| <link rel="prev" href="gresource-tool.html" title="gresource"> |
| <link rel="next" href="gio.html" title="gio"> |
| <meta name="generator" content="GTK-Doc V1.25.1 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"></td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="gresource-tool.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="gio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div lang="en" class="refentry"> |
| <a name="gapplication-tool"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle">gapplication</span></h2> |
| <p>gapplication — D-Bus application launcher</p> |
| </td> |
| <td class="gallery_image" valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsynopsisdiv"> |
| <h2>Synopsis</h2> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> help [<em class="replaceable"><code>COMMAND</code></em>]</p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> version </p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> list-apps </p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> launch <em class="replaceable"><code>APPID</code></em> </p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> launch <em class="replaceable"><code>APPID</code></em> [<em class="replaceable"><code>FILE</code></em>...]</p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> list-actions <em class="replaceable"><code>APPID</code></em> </p></div> |
| <div class="cmdsynopsis"><p><code class="command">gapplication</code> action <em class="replaceable"><code>APPID</code></em> <em class="replaceable"><code>ACTION</code></em> [<em class="replaceable"><code>PARAMETER</code></em>]</p></div> |
| </div> |
| <div class="refsect1"> |
| <a name="id-1.4.26.9.5"></a><h2>Description</h2> |
| <p> |
| <span class="command"><strong>gapplication</strong></span> is a commandline implementation of the client-side of the |
| <code class="interfacename">org.freedesktop.Application</code> interface as specified by the freedesktop.org |
| Desktop Entry Specification. |
| </p> |
| <p> |
| <span class="command"><strong>gapplication</strong></span> can be used to start applications that have |
| <code class="varname">DBusActivatable</code> set to <code class="literal">true</code> in their <code class="filename">.desktop</code> |
| files and can be used to send messages to already-running instances of other applications. |
| </p> |
| <p> |
| It is possible for applications to refer to <span class="command"><strong>gapplication</strong></span> in the <code class="varname">Exec</code> |
| line of their <code class="filename">.desktop</code> file to maintain backwards compatibility |
| with implementations that do not directly support <code class="varname">DBusActivatable</code>. |
| </p> |
| <p> |
| <span class="command"><strong>gapplication</strong></span> ships as part of <span class="application">GLib</span>. |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a name="id-1.4.26.9.6"></a><h2>Commands</h2> |
| <div class="refsect2"> |
| <a name="id-1.4.26.9.6.2"></a><h3>Global commands</h3> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>help</strong></span> |
| [<em class="replaceable"><code>COMMAND</code></em>] |
| </span></p></td> |
| <td><p> |
| Displays a short synopsis of the available commands or provides detailed help on a specific |
| command. |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>version</strong></span> |
| </span></p></td> |
| <td><p> |
| Prints the GLib version whence <span class="command"><strong>gapplication</strong></span> came. |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>list-apps</strong></span> |
| </span></p></td> |
| <td><p> |
| Prints a list of all application IDs that are known to support D-Bus activation. This list is |
| generated by scanning <code class="filename">.desktop</code> files as per the current |
| <code class="envar">XDG_DATA_DIRS</code>. |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>launch</strong></span> |
| <em class="replaceable"><code>APPID</code></em> |
| [<em class="replaceable"><code>FILE</code></em>...] |
| </span></p></td> |
| <td> |
| <p> |
| Launches an application. |
| </p> |
| <p> |
| The first parameter is the application ID in the familiar "reverse DNS" style (eg: |
| '<code class="literal">org.gnome.app</code>') without the <code class="filename">.desktop</code> |
| suffix. |
| </p> |
| <p> |
| Optionally, if additional parameters are given, they are treated as the names of files to open and |
| may be filenames or URIs. If no files are given then the application is simply activated. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>list-actions</strong></span> |
| <em class="replaceable"><code>APPID</code></em> |
| </span></p></td> |
| <td><p> |
| List the actions declared in the application's <code class="filename">.desktop</code> |
| file. The parameter is the application ID, as above. |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"> |
| <span class="command"><strong>action</strong></span> |
| <em class="replaceable"><code>APPID</code></em> |
| <em class="replaceable"><code>ACTION</code></em> |
| [<em class="replaceable"><code>PARAMETER</code></em>] |
| </span></p></td> |
| <td> |
| <p> |
| Invokes the named action (in the same way as would occur when activating an action specified in |
| the <code class="filename">.desktop</code> file). |
| </p> |
| <p> |
| The application ID (as above) is the first parameter. The action name follows. |
| </p> |
| <p> |
| Optionally, following the action name can be one parameter, in GVariant format, given as a single |
| argument. Make sure to use sufficient quoting. |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="id-1.4.26.9.7"></a><h2>Examples</h2> |
| <div class="refsect2"> |
| <a name="id-1.4.26.9.7.2"></a><h3>From the commandline</h3> |
| <p> |
| Launching an application: |
| </p> |
| <pre class="programlisting"> |
| gapplication launch org.example.fooview |
| </pre> |
| <p> |
| Opening a file with an application: |
| </p> |
| <pre class="programlisting"> |
| gapplication launch org.example.fooview ~/file.foo |
| </pre> |
| <p> |
| Opening many files with an application: |
| </p> |
| <pre class="programlisting"> |
| gapplication launch org.example.fooview ~/foos/*.foo |
| </pre> |
| <p> |
| Invoking an action on an application: |
| </p> |
| <pre class="programlisting"> |
| gapplication action org.example.fooview create |
| </pre> |
| <p> |
| Invoking an action on an application, with an action: |
| </p> |
| <pre class="programlisting"> |
| gapplication action org.example.fooview show-item '"item_id_828739"' |
| </pre> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="id-1.4.26.9.7.3"></a><h3> |
| From the <code class="varname">Exec</code> lines of a <code class="filename">.desktop</code> file |
| </h3> |
| <p> |
| The commandline interface of <span class="command"><strong>gapplication</strong></span> was designed so that it could be used |
| directly from the <code class="varname">Exec</code> line of a <code class="filename">.desktop</code> |
| file. |
| </p> |
| <p> |
| You might want to do this to allow for backwards compatibility with implementations of the specification |
| that do not understand how to do D-Bus activation, without having to install a separate utility program. |
| </p> |
| <p> |
| Consider the following example: |
| </p> |
| <pre class="programlisting"> |
| [Desktop Entry] |
| Version=1.1 |
| Type=Application |
| Name=Foo Viewer |
| DBusActivatable=true |
| MimeType=image/x-foo; |
| Exec=gapplication launch org.example.fooview %F |
| Actions=gallery;create; |
| |
| [Desktop Action gallery] |
| Name=Browse Gallery |
| Exec=gapplication action org.example.fooview gallery |
| |
| [Desktop Action create] |
| Name=Create a new Foo! |
| Exec=gapplication action org.example.fooview create |
| </pre> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="id-1.4.26.9.7.4"></a><h3>From a script</h3> |
| <p> |
| If installing an application that supports D-Bus activation you may still want to put a file in |
| <code class="filename">/usr/bin</code> so that your program can be started from a terminal. |
| </p> |
| <p> |
| It is possible for this file to be a shell script. The script can handle arguments such as --help and |
| --version directly. It can also parse other command line arguments and convert them to uses of |
| <span class="command"><strong>gapplication</strong></span> to activate the application, open files, or invoke actions. |
| </p> |
| <p> |
| Here is a simplified example, as may be installed in <code class="filename">/usr/bin/fooview</code>: |
| </p> |
| <pre class="programlisting"> |
| #!/bin/sh |
| |
| case "$1" in |
| --help) |
| echo "see 'man fooview' for more information" |
| ;; |
| |
| --version) |
| echo "fooview 1.2" |
| ;; |
| |
| --gallery) |
| gapplication action org.example.fooview gallery |
| ;; |
| |
| --create) |
| gapplication action org.example.fooview create |
| ;; |
| |
| -*) |
| echo "unrecognised commandline argument" |
| exit 1 |
| ;; |
| |
| *) |
| gapplication launch org.example.fooview "$@" |
| ;; |
| esac |
| </pre> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="id-1.4.26.9.8"></a><h2>See also</h2> |
| <p> |
| <a class="ulink" href="http://standards.freedesktop.org/desktop-entry-spec/latest/" target="_top">Desktop Entry Specification</a>, |
| <span class="citerefentry"><span class="refentrytitle">gdbus</span>(1)</span>, |
| <span class="citerefentry"><span class="refentrytitle">xdg-open</span>(1)</span>, |
| <span class="citerefentry"><span class="refentrytitle">desktop-file-validate</span>(1)</span> |
| </p> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.25.1</div> |
| </body> |
| </html> |