fda938175e
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
268 lines
7.7 KiB
XML
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>
|