gnome-shell/data/dbus-interfaces/org.gnome.Shell.Introspect.xml
Corey Berla 7b45ac72ec introspect: Enhance WindowsChanged DBus API
Splits WindowsChanged into 3 signals: WindowAdded, WindowChanged,
WindowRemoved and nclude the window as an argument.  This gives us
the necessary information to tracked each window changed, rather than
requiring continuous calls to GetWindows (returning all windows).

The main consumer of the shell-introspect signals is
xdg-desktop-portal-gnome, so an API break seems reasonable, rather
than introducing a new API.

See: https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/93
2023-08-16 15:09:12 -07:00

104 lines
3.4 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.Introspect:
@short_description: Introspection interface
The interface used to introspect the state of Shell, such as running
applications, currently active application, etc.
-->
<interface name="org.gnome.Shell.Introspect">
<!--
RunningApplicationsChanged:
@short_description: Notifies when the running applications changes
-->
<signal name="RunningApplicationsChanged" />
<!--
WindowAdded:
@short_description: Notifies when any window opens
-->
<signal name="WindowAdded">
<arg type="a{sv}" name="window" />
</signal>
<!--
WindowChanged:
@short_description: Notifies when any window changes
-->
<signal name="WindowChanged">
<arg type="a{sv}" name="window" />
</signal>
<!--
WindowRemoved:
@short_description: Notifies when any window closes
-->
<signal name="WindowRemoved">
<arg type="a{sv}" name="window" />
</signal>
<!--
GetRunningApplications:
@short_description: Retrieves the description of all running applications
Each application is associated by an application ID. The details of
each application consists of a varlist of keys and values. Available
keys are listed below.
'active-on-seats' - (as) list of seats the application is active on
(a seat only has at most one active
application)
-->
<method name="GetRunningApplications">
<arg name="apps" direction="out" type="a{sa{sv}}" />
</method>
<!--
GetWindows:
@short_description: Retrieves the current list of windows and their properties
A window is exposed as:
* t ID: unique ID of the window
* a{sv} properties: high-level properties
Known properties:
- "title" (s): (readonly) title of the window
- "app-id" (s): (readonly) application ID of the window
- "wm-class" (s): (readonly) class of the window
- "client-type" (u): (readonly) 0 for Wayland, 1 for X11
- "is-hidden" (b): (readonly) if the window is currently hidden
- "has-focus" (b): (readonly) if the window currently have
keyboard focus
- "width" (u): (readonly) width of the window
- "height" (u): (readonly) height of the window
-->
<method name="GetWindows">
<arg name="windows" direction="out" type="a{ta{sv}}" />
</method>
<!--
AnimationsEnabled:
@short_description: Whether the shell animations are enabled
By default determined by the org.gnome.desktop.interface enable-animations
gsetting, but may be overridden, e.g. if there is an active screen cast or
remote desktop session that asked for animations to be disabled.
Since: 2
-->
<property name="AnimationsEnabled" type="b" access="read"/>
<!--
ScreenSize:
@short_description: The size of the screen
Since: 3
-->
<property name="ScreenSize" type="(ii)" access="read"/>
<property name="version" type="u" access="read"/>
</interface>
</node>