| .. _gapplication(1): |
| .. meta:: |
| :copyright: Copyright 2013 Allison Karlitskaya |
| :license: LGPL-2.1-or-later |
| .. |
| This has to be duplicated from above to make it machine-readable by `reuse`: |
| SPDX-FileCopyrightText: 2013 Allison Karlitskaya |
| SPDX-License-Identifier: LGPL-2.1-or-later |
| |
| ============ |
| gapplication |
| ============ |
| |
| -------------------------- |
| D-Bus application launcher |
| -------------------------- |
| |
| SYNOPSIS |
| -------- |
| |
| | **gapplication** help [COMMAND] |
| | **gapplication** version |
| | **gapplication** list-apps |
| | **gapplication** launch <APP-ID> |
| | **gapplication** launch <APP-ID> [FILE…] |
| | **gapplication** list-actions <APP-ID> |
| | **gapplication** action <APP-ID> <ACTION> [PARAMETER] |
| |
| DESCRIPTION |
| ----------- |
| |
| ``gapplication`` is a commandline implementation of the client-side of the |
| ``org.freedesktop.Application`` interface as specified by the freedesktop.org |
| Desktop Entry Specification. |
| |
| ``gapplication`` can be used to start applications that have ``DBusActivatable`` |
| set to ``true`` in their ``.desktop`` files and can be used to send messages to |
| already-running instances of other applications. |
| |
| It is possible for applications to refer to ``gapplication`` in the ``Exec`` |
| line of their ``.desktop`` file to maintain backwards compatibility with |
| implementations that do not directly support ``DBusActivatable``. |
| |
| ``gapplication`` ships as part of GLib. |
| |
| COMMANDS |
| -------- |
| |
| ``help [COMMAND]`` |
| |
| Displays a short synopsis of the available commands or provides detailed help |
| on a specific command. |
| |
| ``version`` |
| |
| Prints the GLib version whence ``gapplication`` came. |
| |
| ``list-apps`` |
| |
| Prints a list of all application IDs that are known to support D-Bus |
| activation. This list is generated by scanning ``.desktop`` files as per the |
| current ``XDG_DATA_DIRS``. |
| |
| ``launch <APP-ID> [FILE…]`` |
| |
| Launches an application. |
| |
| The first parameter is the application ID in the familiar ‘reverse DNS’ style |
| (e.g. ``org.gnome.app``) without the ``.desktop`` suffix. |
| |
| 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. |
| |
| ``list-actions <APP-ID>`` |
| |
| List the actions declared in the application’s ``.desktop`` file. The |
| parameter is the application ID, as above. |
| |
| ``action <APP-ID> <ACTION> [PARAMETER]`` |
| |
| Invokes the named action (in the same way as would occur when activating an |
| action specified in the ``.desktop`` file). |
| |
| The application ID (as above) is the first parameter. The action name |
| follows. |
| |
| Optionally, following the action name can be one parameter, in GVariant |
| format, given as a single argument. Make sure to use sufficient quoting. |
| |
| EXAMPLES |
| -------- |
| |
| From the commandline |
| ^^^^^^^^^^^^^^^^^^^^ |
| |
| Launching an application:: |
| |
| gapplication launch org.example.fooview |
| |
| Opening a file with an application:: |
| |
| gapplication launch org.example.fooview ~/file.foo |
| |
| Opening many files with an application:: |
| |
| gapplication launch org.example.fooview ~/foos/*.foo |
| |
| Invoking an action on an application:: |
| |
| gapplication action org.example.fooview create |
| |
| Invoking an action on an application, with an action:: |
| |
| gapplication action org.example.fooview show-item '"item_id_828739"' |
| |
| From the ``Exec`` lines of a ``.desktop`` file |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| The commandline interface of ``gapplication`` was designed so that it could be |
| used directly from the ``Exec`` line of a ``.desktop`` file. |
| |
| 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. |
| |
| Consider the following example:: |
| |
| [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 |
| |
| From a script |
| ^^^^^^^^^^^^^ |
| |
| If installing an application that supports D-Bus activation you may still want |
| to put a file in ``/usr/bin`` so that your program can be started from a |
| terminal. |
| |
| 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 ``gapplication`` to |
| activate the application, open files, or invoke actions. |
| |
| Here is a simplified example, as may be installed in ``/usr/bin/fooview``:: |
| |
| #!/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 "unrecognized commandline argument" |
| exit 1 |
| ;; |
| |
| *) |
| gapplication launch org.example.fooview "$@" |
| ;; |
| esac |
| |
| SEE ALSO |
| -------- |
| |
| `Desktop Entry Specification <https://specifications.freedesktop.org/desktop-entry-spec/latest/>`_, |
| `gdbus(1) <man:gdbus(1)>`_, |
| `xdg-open(1) <man:xdg-open(1)>`_, |
| `desktop-file-validate(1) <man:desktop-file-validate(1)>`_ |