gnome-shell/data/dbus-interfaces/org.gnome.Shell.Extensions.xml
Florian Müllner fda938175e shellDBus: Add new OpenExtensionPrefs method
Unlike any other methods in the Extensions API, LaunchExtensionPrefs()
opens what appears to be an application dialog, except that it is
really a separate application that the caller has no control over.

In order to address that, add a new OpenExtensionPrefs() method that
takes additional parameters (modelled after the desktop portal APIs)
that will make it possible to improve the behavior in the future.

The new parameters are ignored for now, but pushing the API out now
will allow us to fill in the functionality post the .0 release.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1074
2020-03-06 19:03:02 +00:00

268 lines
7.7 KiB
XML

<!DOCTYPE node PUBLIC
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
<node>
<!--
org.gnome.Shell.Extensions:
@short_description: Extensions interface
The interface used to query and manage extensions.
-->
<interface name="org.gnome.Shell.Extensions">
<!--
ListExtensions:
@extensions: A dictionary of extension infos
Get a list of installed extensions. The returned @extensions
dictionary maps extension UUIDs to info vardicts. See
GetExtensionInfo() for documentation on possible keys.
-->
<method name="ListExtensions">
<arg type="a{sa{sv}}" direction="out" name="extensions"/>
</method>
<!--
GetExtensionInfo:
@uuid: The UUID of the extension
@info: The returned extension info
The information returned in the @info vardict depends on the
metadata the extension provides, however it is guaranteed to
contain the following keys:
<variablelist>
<varlistentry>
<term>uuid s</term>
<listitem><para>The UUID of the extension</para></listitem>
</varlistentry>
<varlistentry>
<term>name s</term>
<listitem><para>The name of the extension</para></listitem>
</varlistentry>
<varlistentry>
<term>description s</term>
<listitem><para>
A short summary that describes what the extension does
</para></listitem>
</varlistentry>
<varlistentry>
<term>shell-version as</term>
<listitem><para>An array of support shell versions</para></listitem>
</varlistentry>
<varlistentry>
<term>type d</term>
<listitem><para>
The type of extension:
<simplelist>
<member>1: SYSTEM</member>
<member>2: PER_USER</member>
</simplelist>
</para></listitem>
</varlistentry>
<varlistentry>
<term>state d</term>
<listitem><para>
The state the extension is in:
<simplelist>
<member>1: ENABLED</member>
<member>2: DISABLED</member>
<member>3: ERROR</member>
<member>4: OUT_OF_DATE</member>
<member>5: DOWNLOADING</member>
<member>6: INITIALIZED</member>
<member>99: UNINSTALLED</member>
</simplelist>
</para></listitem>
</varlistentry>
<varlistentry>
<term>path s</term>
<listitem><para>The extension directory</para></listitem>
</varlistentry>
<varlistentry>
<term>error s</term>
<listitem><para>The most recent error caught in init(), enable() or disable()</para></listitem>
</varlistentry>
<varlistentry>
<term>hasPrefs b</term>
<listitem><para>Whether the extension includes preference UI</para></listitem>
</varlistentry>
</variablelist>
By convention, many extensions will also include the following keys:
<variablelist>
<varlistentry>
<term>version d</term>
<listitem><para>The extension version</para></listitem>
</varlistentry>
<varlistentry>
<term>url s</term>
<listitem><para>The URL to the extension homepage or repository</para></listitem>
</varlistentry>
<varlistentry>
<term>settings-schema s</term>
<listitem><para>The ID of a bundled GSettings schema</para></listitem>
</varlistentry>
<varlistentry>
<term>gettext-domain s</term>
<listitem><para>The domain used for translations</para></listitem>
</varlistentry>
</variablelist>
-->
<method name="GetExtensionInfo">
<arg type="s" direction="in" name="uuid"/>
<arg type="a{sv}" direction="out" name="info"/>
</method>
<!--
GetExtensionErrors:
@uuid: The UUID of the extension
@errors: The returned errors
Get the list of errors that caused the extension
to be in ERROR state.
-->
<method name="GetExtensionErrors">
<arg type="s" direction="in" name="uuid"/>
<arg type="as" direction="out" name="errors"/>
</method>
<!--
InstallRemoteExtension:
@uuid: The UUID of the extension
@result: The result of the operation
Download and install an extension.
-->
<method name="InstallRemoteExtension">
<arg type="s" direction="in" name="uuid"/>
<arg type="s" direction="out" name="result"/>
</method>
<!--
UninstallExtension:
@uuid: The UUID of the extension
@success: Whether the operation was successful
Uninstall an extension.
-->
<method name="UninstallExtension">
<arg type="s" direction="in" name="uuid"/>
<arg type="b" direction="out" name="success"/>
</method>
<!--
ReloadExtension:
@uuid: The UUID of the extension
Reload an extension.
-->
<method name="ReloadExtension">
<arg type="s" direction="in" name="uuid"/>
</method>
<!--
EnableExtension:
@uuid: The UUID of the extension
@success: Whether the operation was successful
Enable an extension.
-->
<method name="EnableExtension"> \
<arg type="s" direction="in" name="uuid"/> \
<arg type="b" direction="out" name="success"/> \
</method> \
<!--
DisableExtension:
@uuid: The UUID of the extension
@success: Whether the operation was successful
Disable an extension.
-->
<method name="DisableExtension"> \
<arg type="s" direction="in" name="uuid"/> \
<arg type="b" direction="out" name="success"/> \
</method> \
<!--
LaunchExtensionPrefs:
Deprecated for OpenExtensionPrefs
-->
<method name="LaunchExtensionPrefs">
<arg type="s" direction="in" name="uuid"/>
</method>
<!--
OpenExtensionPrefs:
@uuid: The UUID of the extension
@parent_window: Identifier for the application window
@options: Vardict with further options
Opens the prefs dialog of extension @uuid.
The following @options are recognized:
<variablelist>
<varlistentry>
<term>modal b</term>
<listitem>
<para>Whether the prefs window should be modal, default: false</para>
</listitem>
</varlistentry>
</variablelist>
-->
<method name="OpenExtensionPrefs">
<arg type="s" direction="in" name="uuid"/>
<arg type="s" direction="in" name="parent_window"/>
<arg type="a{sv}" direction="in" name="options"/>
</method>
<!--
CheckForUpdates:
Update all extensions for which updates are available
-->
<method name="CheckForUpdates"/>
<signal name="ExtensionStateChanged">
<arg type="s" name="uuid"/>
<arg type="a{sv}" name="state"/>
</signal>
<!--
ExtensionStatusChanged:
Deprecated for ExtensionStateChanged
-->
<signal name="ExtensionStatusChanged">
<arg type="s" name="uuid"/>
<arg type="i" name="state"/>
<arg type="s" name="error"/>
</signal>
<!--
ShellVersion:
The GNOME Shell version
-->
<property name="ShellVersion" type="s" access="read"/>
<!--
UserExtensionsEnabled:
Whether user extensions are enabled
-->
<property name="UserExtensionsEnabled" type="b" access="readwrite"/>
</interface>
</node>