e6624f8ba1
The ENABLED state means that an extension's `enable()` method was called successfully. This usually matches whether an extension *should* be enabled according to the enabled-extensions/disabled-extensions settings, but not necessarily: If an extension had an error or does not support the currently active mode, its actual state is different. We currently only expose the actual state to external tooling, but whether an extension should be enabled is relevant as well, for example to disable a lock-screen only extension from the regular session. For that purpose we will expose a separate `enabled` property. To avoid confusion with the existing states, change the exposed names to (IN)ACTIVE. This does not affect the D-Bus API, as the numeric values of the states remain unchanged. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>
275 lines
8.0 KiB
XML
275 lines
8.0 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: ACTIVE</member>
|
|
<member>2: INACTIVE</member>
|
|
<member>3: ERROR</member>
|
|
<member>4: OUT_OF_DATE</member>
|
|
<member>5: DOWNLOADING</member>
|
|
<member>6: INITIALIZED</member>
|
|
<member>7: DEACTIVATING</member>
|
|
<member>8: ACTIVATING</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>version-name s</term>
|
|
<listitem><para>The extension version name</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>
|