summaryrefslogtreecommitdiffstats
path: root/data/dbus-interfaces
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:07:22 +0000
commitf9d480cfe50ca1d7a0f0b5a2b8bb9932962bfbe7 (patch)
treece9e8db2d4e8799780fa72ae8f1953039373e2ee /data/dbus-interfaces
parentInitial commit. (diff)
downloadgnome-shell-upstream.tar.xz
gnome-shell-upstream.zip
Adding upstream version 3.38.6.upstream/3.38.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--data/dbus-interfaces/meson.build10
-rw-r--r--data/dbus-interfaces/net.hadess.SensorProxy.xml5
-rw-r--r--data/dbus-interfaces/net.hadess.SwitcherooControl.xml46
-rw-r--r--data/dbus-interfaces/org.Gtk.MountOperationHandler.xml32
-rw-r--r--data/dbus-interfaces/org.freedesktop.Application.xml12
-rw-r--r--data/dbus-interfaces/org.freedesktop.DBus.xml16
-rw-r--r--data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml11
-rw-r--r--data/dbus-interfaces/org.freedesktop.GeoClue2.Manager.xml9
-rw-r--r--data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Cdma.xml13
-rw-r--r--data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Gsm.Network.xml19
-rw-r--r--data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml6
-rw-r--r--data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.ModemCdma.xml5
-rw-r--r--data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.xml5
-rw-r--r--data/dbus-interfaces/org.freedesktop.Notifications.xml35
-rw-r--r--data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml13
-rw-r--r--data/dbus-interfaces/org.freedesktop.UPower.Device.xml11
-rw-r--r--data/dbus-interfaces/org.freedesktop.UPower.xml5
-rw-r--r--data/dbus-interfaces/org.freedesktop.bolt1.Device.xml18
-rw-r--r--data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml15
-rw-r--r--data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml15
-rw-r--r--data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml24
-rw-r--r--data/dbus-interfaces/org.freedesktop.impl.portal.Request.xml5
-rw-r--r--data/dbus-interfaces/org.freedesktop.login1.Manager.xml33
-rw-r--r--data/dbus-interfaces/org.freedesktop.login1.Session.xml15
-rw-r--r--data/dbus-interfaces/org.freedesktop.login1.User.xml6
-rw-r--r--data/dbus-interfaces/org.freedesktop.realmd.Provider.xml13
-rw-r--r--data/dbus-interfaces/org.freedesktop.realmd.Realm.xml20
-rw-r--r--data/dbus-interfaces/org.freedesktop.realmd.Service.xml15
-rw-r--r--data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml26
-rw-r--r--data/dbus-interfaces/org.gnome.Magnifier.xml54
-rw-r--r--data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml191
-rw-r--r--data/dbus-interfaces/org.gnome.ScreenSaver.xml18
-rw-r--r--data/dbus-interfaces/org.gnome.SessionManager.EndSessionDialog.xml16
-rw-r--r--data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml10
-rw-r--r--data/dbus-interfaces/org.gnome.SessionManager.Presence.xml11
-rw-r--r--data/dbus-interfaces/org.gnome.SessionManager.xml23
-rw-r--r--data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml6
-rw-r--r--data/dbus-interfaces/org.gnome.SettingsDaemon.Power.Screen.xml5
-rw-r--r--data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml10
-rw-r--r--data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml13
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.AudioDeviceSelection.xml12
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml19
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.ClocksIntegration.xml15
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.Extensions.xml267
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml8
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.Introspect.xml83
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.PadOsd.xml28
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml13
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml19
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.Screencast.xml95
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.Screenshot.xml145
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml8
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.WeatherIntegration.xml16
-rw-r--r--data/dbus-interfaces/org.gnome.Shell.xml46
-rw-r--r--data/dbus-interfaces/org.gnome.ShellSearchProvider.xml73
-rw-r--r--data/dbus-interfaces/org.gnome.ShellSearchProvider2.xml87
-rw-r--r--data/dbus-interfaces/org.gtk.Notifications.xml13
-rw-r--r--data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml12
-rw-r--r--data/dbus-interfaces/org.mpris.MediaPlayer2.xml7
59 files changed, 1781 insertions, 0 deletions
diff --git a/data/dbus-interfaces/meson.build b/data/dbus-interfaces/meson.build
new file mode 100644
index 0000000..c96bbbb
--- /dev/null
+++ b/data/dbus-interfaces/meson.build
@@ -0,0 +1,10 @@
+dbus_interfaces = [
+ 'org.gnome.Shell.Extensions.xml',
+ 'org.gnome.Shell.Introspect.xml',
+ 'org.gnome.Shell.PadOsd.xml',
+ 'org.gnome.Shell.Screencast.xml',
+ 'org.gnome.Shell.Screenshot.xml',
+ 'org.gnome.ShellSearchProvider.xml',
+ 'org.gnome.ShellSearchProvider2.xml'
+]
+install_data(dbus_interfaces, install_dir: ifacedir)
diff --git a/data/dbus-interfaces/net.hadess.SensorProxy.xml b/data/dbus-interfaces/net.hadess.SensorProxy.xml
new file mode 100644
index 0000000..2bf8ffa
--- /dev/null
+++ b/data/dbus-interfaces/net.hadess.SensorProxy.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="net.hadess.SensorProxy">
+ <property name="HasAccelerometer" type="b" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/net.hadess.SwitcherooControl.xml b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml
new file mode 100644
index 0000000..e52bc1a
--- /dev/null
+++ b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml
@@ -0,0 +1,46 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<node>
+
+ <!--
+ net.hadess.SwitcherooControl:
+ @short_description: D-Bus proxy to access dual-GPU controls.
+
+ After checking the availability of two switchable GPUs in the machine,
+ check the value of net.hadess.SwitcherooControl.HasDualGpu to see
+ if running applications on the discrete GPU should be offered.
+
+ The object path will be "/net/hadess/SwitcherooControl".
+ -->
+ <interface name="net.hadess.SwitcherooControl">
+ <!--
+ HasDualGpu:
+
+ Whether two switchable GPUs are present on the system. This property
+ has been obsoleted in favour of the "NumGPUs" property.
+ -->
+ <property name="HasDualGpu" type="b" access="read"/>
+
+ <!--
+ NumGPUs:
+
+ The number of GPUs available on the system. Note that while having no
+ GPUs is unlikely, consumers of this API should probably not throw errors
+ if that were the case.
+ -->
+ <property name="NumGPUs" type="u" access="read"/>
+
+ <!--
+ GPUs:
+
+ An array of key-pair values representing each GPU. The key named "Name" (s)
+ will contain a user-facing name for the GPU, the "Environment" (as) key will
+ contain an array of even number of strings, each being an environment
+ variable to set to use the GPU, followed by its value, the "Default" (b) key
+ will tag the default (usually integrated) GPU.
+ -->
+ <property name="GPUs" type="aa{sv}" access="read"/>
+
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.Gtk.MountOperationHandler.xml b/data/dbus-interfaces/org.Gtk.MountOperationHandler.xml
new file mode 100644
index 0000000..8b03a2e
--- /dev/null
+++ b/data/dbus-interfaces/org.Gtk.MountOperationHandler.xml
@@ -0,0 +1,32 @@
+<node>
+ <interface name="org.Gtk.MountOperationHandler">
+ <method name="AskPassword">
+ <arg type="s" direction="in" name="object_id"/>
+ <arg type="s" direction="in" name="message"/>
+ <arg type="s" direction="in" name="icon_name"/>
+ <arg type="s" direction="in" name="default_user"/>
+ <arg type="s" direction="in" name="default_domain"/>
+ <arg type="u" direction="in" name="flags"/>
+ <arg type="u" direction="out" name="response"/>
+ <arg type="a{sv}" direction="out" name="response_details"/>
+ </method>
+ <method name="AskQuestion">
+ <arg type="s" direction="in" name="object_id"/>
+ <arg type="s" direction="in" name="message"/>
+ <arg type="s" direction="in" name="icon_name"/>
+ <arg type="as" direction="in" name="choices"/>
+ <arg type="u" direction="out" name="response"/>
+ <arg type="a{sv}" direction="out" name="response_details"/>
+ </method>
+ <method name="ShowProcesses">
+ <arg type="s" direction="in" name="object_id"/>
+ <arg type="s" direction="in" name="message"/>
+ <arg type="s" direction="in" name="icon_name"/>
+ <arg type="ai" direction="in" name="application_pids"/>
+ <arg type="as" direction="in" name="choices"/>
+ <arg type="u" direction="out" name="response"/>
+ <arg type="a{sv}" direction="out" name="response_details"/>
+ </method>
+ <method name="Close"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.Application.xml b/data/dbus-interfaces/org.freedesktop.Application.xml
new file mode 100644
index 0000000..55be7d7
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.Application.xml
@@ -0,0 +1,12 @@
+<node>
+ <interface name="org.freedesktop.Application">
+ <method name="ActivateAction">
+ <arg type="s" direction="in"/>
+ <arg type="av" direction="in"/>
+ <arg type="a{sv}" direction="in"/>
+ </method>
+ <method name="Activate">
+ <arg type="a{sv}" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.DBus.xml b/data/dbus-interfaces/org.freedesktop.DBus.xml
new file mode 100644
index 0000000..18ff2aa
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.DBus.xml
@@ -0,0 +1,16 @@
+<node>
+ <interface name="org.freedesktop.DBus">
+ <method name="ListNames">
+ <arg type="as" direction="out" name="names"/>
+ </method>
+ <method name="GetConnectionUnixProcessID">
+ <arg type="s" direction="in"/>
+ <arg type="u" direction="out"/>
+ </method>
+ <signal name="NameOwnerChanged">
+ <arg type="s" direction="out" name="name"/>
+ <arg type="s" direction="out" name="oldOwner"/>
+ <arg type="s" direction="out" name="newOwner"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml b/data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml
new file mode 100644
index 0000000..2773601
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml
@@ -0,0 +1,11 @@
+<node>
+ <interface name="org.freedesktop.GeoClue2.Agent">
+ <property name="MaxAccuracyLevel" type="u" access="read"/>
+ <method name="AuthorizeApp">
+ <arg name="desktop_id" type="s" direction="in"/>
+ <arg name="req_accuracy_level" type="u" direction="in"/>
+ <arg name="authorized" type="b" direction="out"/>
+ <arg name="allowed_accuracy_level" type="u" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.GeoClue2.Manager.xml b/data/dbus-interfaces/org.freedesktop.GeoClue2.Manager.xml
new file mode 100644
index 0000000..28db3c6
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.GeoClue2.Manager.xml
@@ -0,0 +1,9 @@
+<node>
+ <interface name="org.freedesktop.GeoClue2.Manager">
+ <property name="InUse" type="b" access="read"/>
+ <property name="AvailableAccuracyLevel" type="u" access="read"/>
+ <method name="AddAgent">
+ <arg name="id" type="s" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Cdma.xml b/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Cdma.xml
new file mode 100644
index 0000000..12a85e0
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Cdma.xml
@@ -0,0 +1,13 @@
+<node>
+ <interface name="org.freedesktop.ModemManager.Modem.Cdma">
+ <method name="GetSignalQuality">
+ <arg type="u" direction="out"/>
+ </method>
+ <method name="GetServingSystem">
+ <arg type="(usu)" direction="out"/>
+ </method>
+ <signal name="SignalQuality">
+ <arg type="u" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Gsm.Network.xml b/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Gsm.Network.xml
new file mode 100644
index 0000000..7d8c25a
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.ModemManager.Modem.Gsm.Network.xml
@@ -0,0 +1,19 @@
+<node>
+ <interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
+ <method name="GetRegistrationInfo">
+ <arg type="(uss)" direction="out"/>
+ </method>
+ <method name="GetSignalQuality">
+ <arg type="u" direction="out"/>
+ </method>
+ <property name="AccessTechnology" type="u" access="read"/>
+ <signal name="SignalQuality">
+ <arg type="u" direction="out"/>
+ </signal>
+ <signal name="RegistrationInfo">
+ <arg type="u" direction="out"/>
+ <arg type="s" direction="out"/>
+ <arg type="s" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml
new file mode 100644
index 0000000..41e6601
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml
@@ -0,0 +1,6 @@
+<node>
+ <interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp">
+ <property name="OperatorCode" type="s" access="read"/>
+ <property name="OperatorName" type="s" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.ModemCdma.xml b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.ModemCdma.xml
new file mode 100644
index 0000000..d029252
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.ModemCdma.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="org.freedesktop.ModemManager1.Modem.ModemCdma">
+ <property name="Sid" type="u" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.xml b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.xml
new file mode 100644
index 0000000..204426b
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.ModemManager1.Modem.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="org.freedesktop.ModemManager1.Modem">
+ <property name="SignalQuality" type="(ub)" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.Notifications.xml b/data/dbus-interfaces/org.freedesktop.Notifications.xml
new file mode 100644
index 0000000..0ed8657
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.Notifications.xml
@@ -0,0 +1,35 @@
+<node>
+ <interface name="org.freedesktop.Notifications">
+ <method name="Notify">
+ <arg type="s" direction="in"/>
+ <arg type="u" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="as" direction="in"/>
+ <arg type="a{sv}" direction="in"/>
+ <arg type="i" direction="in"/>
+ <arg type="u" direction="out"/>
+ </method>
+ <method name="CloseNotification">
+ <arg type="u" direction="in"/>
+ </method>
+ <method name="GetCapabilities">
+ <arg type="as" direction="out"/>
+ </method>
+ <method name="GetServerInformation">
+ <arg type="s" direction="out"/>
+ <arg type="s" direction="out"/>
+ <arg type="s" direction="out"/>
+ <arg type="s" direction="out"/>
+ </method>
+ <signal name="NotificationClosed">
+ <arg type="u"/>
+ <arg type="u"/>
+ </signal>
+ <signal name="ActionInvoked">
+ <arg type="u"/>
+ <arg type="s"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml b/data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml
new file mode 100644
index 0000000..ff61166
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml
@@ -0,0 +1,13 @@
+<node>
+ <interface name="org.freedesktop.PackageKit.Offline">
+ <property name="UpdatePrepared" type="b" access="read"/>
+ <property name="UpdateTriggered" type="b" access="read"/>
+ <property name="UpgradePrepared" type="b" access="read"/>
+ <property name="UpgradeTriggered" type="b" access="read"/>
+ <property name="PreparedUpgrade" type="a{sv}" access="read"/>
+ <method name="Trigger">
+ <arg type="s" name="action" direction="in"/>
+ </method>
+ <method name="Cancel"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.UPower.Device.xml b/data/dbus-interfaces/org.freedesktop.UPower.Device.xml
new file mode 100644
index 0000000..4882285
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.UPower.Device.xml
@@ -0,0 +1,11 @@
+<node>
+ <interface name="org.freedesktop.UPower.Device">
+ <property name="Type" type="u" access="read"/>
+ <property name="State" type="u" access="read"/>
+ <property name="Percentage" type="d" access="read"/>
+ <property name="TimeToEmpty" type="x" access="read"/>
+ <property name="TimeToFull" type="x" access="read"/>
+ <property name="IsPresent" type="b" access="read"/>
+ <property name="IconName" type="s" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.UPower.xml b/data/dbus-interfaces/org.freedesktop.UPower.xml
new file mode 100644
index 0000000..a0fba20
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.UPower.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="org.freedesktop.UPower">
+ <property name="OnBattery" type="b" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.bolt1.Device.xml b/data/dbus-interfaces/org.freedesktop.bolt1.Device.xml
new file mode 100644
index 0000000..44b40dc
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.bolt1.Device.xml
@@ -0,0 +1,18 @@
+<node>
+ <interface name="org.freedesktop.bolt1.Device">
+ <property name="Uid" type="s" access="read"></property>
+ <property name="Name" type="s" access="read"></property>
+ <property name="Vendor" type="s" access="read"></property>
+ <property name="Type" type="s" access="read"></property>
+ <property name="Status" type="s" access="read"></property>
+ <property name="Parent" type="s" access="read"></property>
+ <property name="SysfsPath" type="s" access="read"></property>
+ <property name="Stored" type="b" access="read"></property>
+ <property name="Policy" type="s" access="read"></property>
+ <property name="Key" type="s" access="read"></property>
+ <property name="Label" type="s" access="read"></property>
+ <property name="ConnectTime" type="t" access="read"></property>
+ <property name="AuthorizeTime" type="t" access="read"></property>
+ <property name="StoreTime" type="t" access="read"></property>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml b/data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml
new file mode 100644
index 0000000..c98a94f
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml
@@ -0,0 +1,15 @@
+<node>
+ <interface name="org.freedesktop.bolt1.Manager">
+ <property name="Probing" type="b" access="read"></property>
+ <property name="AuthMode" type="s" access="readwrite"></property>
+ <method name="EnrollDevice">
+ <arg type="s" name="uid" direction="in"/>
+ <arg type="s" name="policy" direction="in"/>
+ <arg type="s" name="flags" direction="in"/>
+ <arg name="device" direction="out" type="o"/>
+ </method>
+ <signal name="DeviceAdded">
+ <arg name="device" type="o"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml b/data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml
new file mode 100644
index 0000000..802a2c1
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml
@@ -0,0 +1,15 @@
+<node>
+ <interface name="org.freedesktop.impl.portal.Access">
+ <method name="AccessDialog">
+ <arg type="o" name="handle" direction="in"/>
+ <arg type="s" name="app_id" direction="in"/>
+ <arg type="s" name="parent_window" direction="in"/>
+ <arg type="s" name="title" direction="in"/>
+ <arg type="s" name="subtitle" direction="in"/>
+ <arg type="s" name="body" direction="in"/>
+ <arg type="a{sv}" name="options" direction="in"/>
+ <arg type="u" name="response" direction="out"/>
+ <arg type="a{sv}" name="results" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml
new file mode 100644
index 0000000..75fbc46
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.impl.portal.PermissionStore.xml
@@ -0,0 +1,24 @@
+<node>
+ <interface name="org.freedesktop.impl.portal.PermissionStore">
+ <method name="Lookup">
+ <arg name="table" type="s" direction="in"/>
+ <arg name="id" type="s" direction="in"/>
+ <arg name="permissions" type="a{sas}" direction="out"/>
+ <arg name="data" type="v" direction="out"/>
+ </method>
+ <method name="Set">
+ <arg name="table" type="s" direction="in"/>
+ <arg name="create" type="b" direction="in"/>
+ <arg name="id" type="s" direction="in"/>
+ <arg name="app_permissions" type="a{sas}" direction="in"/>
+ <arg name="data" type="v" direction="in"/>
+ </method>
+ <signal name="Changed">
+ <arg name="table" type="s" direction="out"/>
+ <arg name="id" type="s" direction="out"/>
+ <arg name="deleted" type="b" direction="out"/>
+ <arg name="data" type="v" direction="out"/>
+ <arg name="permissions" type="a{sas}" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.impl.portal.Request.xml b/data/dbus-interfaces/org.freedesktop.impl.portal.Request.xml
new file mode 100644
index 0000000..a9d03eb
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.impl.portal.Request.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="org.freedesktop.impl.portal.Request">
+ <method name="Close"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.login1.Manager.xml b/data/dbus-interfaces/org.freedesktop.login1.Manager.xml
new file mode 100644
index 0000000..f40d498
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.login1.Manager.xml
@@ -0,0 +1,33 @@
+<node>
+ <interface name="org.freedesktop.login1.Manager">
+ <method name="Suspend">
+ <arg type="b" direction="in"/>
+ </method>
+ <method name="CanSuspend">
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="Inhibit">
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="h" direction="out"/>
+ </method>
+ <method name="GetSession">
+ <arg type="s" direction="in"/>
+ <arg type="o" direction="out"/>
+ </method>
+ <method name="ListSessions">
+ <arg name="sessions" type="a(susso)" direction="out"/>
+ </method>
+ <method name="CanRebootToBootLoaderMenu">
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="SetRebootToBootLoaderMenu">
+ <arg type="t" direction="in"/>
+ </method>
+ <signal name="PrepareForSleep">
+ <arg type="b" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.login1.Session.xml b/data/dbus-interfaces/org.freedesktop.login1.Session.xml
new file mode 100644
index 0000000..6fab817
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.login1.Session.xml
@@ -0,0 +1,15 @@
+<node>
+ <interface name="org.freedesktop.login1.Session">
+ <signal name="Lock"/>
+ <signal name="Unlock"/>
+ <property name="Active" type="b" access="read"/>
+ <property name="Class" type="s" access="read"/>
+ <property name="Id" type="s" access="read"/>
+ <property name="Remote" type="b" access="read"/>
+ <property name="Type" type="s" access="read"/>
+ <property name="State" type="s" access="read"/>
+ <method name="SetLockedHint">
+ <arg type="b" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.login1.User.xml b/data/dbus-interfaces/org.freedesktop.login1.User.xml
new file mode 100644
index 0000000..d6f10b0
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.login1.User.xml
@@ -0,0 +1,6 @@
+<node>
+ <interface name="org.freedesktop.login1.User">
+ <property name="Display" type="(so)" access="read"/>
+ <property name="Sessions" type="a(so)" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.realmd.Provider.xml b/data/dbus-interfaces/org.freedesktop.realmd.Provider.xml
new file mode 100644
index 0000000..2fdb045
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.realmd.Provider.xml
@@ -0,0 +1,13 @@
+<node>
+ <interface name="org.freedesktop.realmd.Provider">
+ <property name="Name" type="s" access="read"/>
+ <property name="Version" type="s" access="read"/>
+ <property name="Realms" type="ao" access="read"/>
+ <method name="Discover">
+ <arg name="string" type="s" direction="in"/>
+ <arg name="options" type="a{sv}" direction="in"/>
+ <arg name="relevance" type="i" direction="out"/>
+ <arg name="realm" type="ao" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.realmd.Realm.xml b/data/dbus-interfaces/org.freedesktop.realmd.Realm.xml
new file mode 100644
index 0000000..351066d
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.realmd.Realm.xml
@@ -0,0 +1,20 @@
+<node>
+ <interface name="org.freedesktop.realmd.Realm">
+ <property name="Name" type="s" access="read"/>
+ <property name="Configured" type="s" access="read"/>
+ <property name="Details" type="a(ss)" access="read"/>
+ <property name="LoginFormats" type="as" access="read"/>
+ <property name="LoginPolicy" type="s" access="read"/>
+ <property name="PermittedLogins" type="as" access="read"/>
+ <property name="SupportedInterfaces" type="as" access="read"/>
+ <method name="ChangeLoginPolicy">
+ <arg name="login_policy" type="s" direction="in"/>
+ <arg name="permitted_add" type="as" direction="in"/>
+ <arg name="permitted_remove" type="as" direction="in"/>
+ <arg name="options" type="a{sv}" direction="in"/>
+ </method>
+ <method name="Deconfigure">
+ <arg name="options" type="a{sv}" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.freedesktop.realmd.Service.xml b/data/dbus-interfaces/org.freedesktop.realmd.Service.xml
new file mode 100644
index 0000000..4ffb7e7
--- /dev/null
+++ b/data/dbus-interfaces/org.freedesktop.realmd.Service.xml
@@ -0,0 +1,15 @@
+<node>
+ <interface name="org.freedesktop.realmd.Service">
+ <method name="Cancel">
+ <arg name="operation" type="s" direction="in"/>
+ </method>
+ <method name="Release"/>
+ <method name="SetLocale">
+ <arg name="locale" type="s" direction="in"/>
+ </method>
+ <signal name="Diagnostics">
+ <arg name="data" type="s"/>
+ <arg name="operation" type="s"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml b/data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml
new file mode 100644
index 0000000..5db2734
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml
@@ -0,0 +1,26 @@
+<node>
+ <interface name="org.gnome.Magnifier.ZoomRegion">
+ <method name="setMagFactor">
+ <arg type="d" direction="in"/>
+ <arg type="d" direction="in"/>
+ </method>
+ <method name="getMagFactor">
+ <arg type="d" direction="out"/>
+ <arg type="d" direction="out"/>
+ </method>
+ <method name="setRoi">
+ <arg type="ai" direction="in"/>
+ </method>
+ <method name="getRoi">
+ <arg type="ai" direction="out"/>
+ </method>
+ <method name="shiftContentsTo">
+ <arg type="i" direction="in"/>
+ <arg type="i" direction="in"/>
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="moveResize">
+ <arg type="ai" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Magnifier.xml b/data/dbus-interfaces/org.gnome.Magnifier.xml
new file mode 100644
index 0000000..2ade4dd
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Magnifier.xml
@@ -0,0 +1,54 @@
+<node>
+ <interface name="org.gnome.Magnifier">
+ <method name="setActive">
+ <arg type="b" direction="in"/>
+ </method>
+ <method name="isActive">
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="showCursor"/>
+ <method name="hideCursor"/>
+ <method name="createZoomRegion">
+ <arg type="d" direction="in"/>
+ <arg type="d" direction="in"/>
+ <arg type="ai" direction="in"/>
+ <arg type="ai" direction="in"/>
+ <arg type="o" direction="out"/>
+ </method>
+ <method name="addZoomRegion">
+ <arg type="o" direction="in"/>
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="getZoomRegions">
+ <arg type="ao" direction="out"/>
+ </method>
+ <method name="clearAllZoomRegions"/>
+ <method name="fullScreenCapable">
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="setCrosswireSize">
+ <arg type="i" direction="in"/>
+ </method>
+ <method name="getCrosswireSize">
+ <arg type="i" direction="out"/>
+ </method>
+ <method name="setCrosswireLength">
+ <arg type="i" direction="in"/>
+ </method>
+ <method name="getCrosswireLength">
+ <arg type="i" direction="out"/>
+ </method>
+ <method name="setCrosswireClip">
+ <arg type="b" direction="in"/>
+ </method>
+ <method name="getCrosswireClip">
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="setCrosswireColor">
+ <arg type="u" direction="in"/>
+ </method>
+ <method name="getCrosswireColor">
+ <arg type="u" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml b/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
new file mode 100644
index 0000000..a8ff3cc
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
@@ -0,0 +1,191 @@
+<!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.Mutter.ScreenCast:
+ @short_description: Screen cast interface
+
+ This API is private and not intended to be used outside of the integrated
+ system that uses libmutter. No compatibility between versions are
+ promised.
+ -->
+ <interface name="org.gnome.Mutter.ScreenCast">
+
+ <!--
+ CreateSession:
+ @properties: Properties
+ @session_path: Path to the new session object
+
+ * "remote-desktop-session-id" (s): The ID of a remote desktop session.
+ Remote desktop driven screen casts
+ are started and stopped by the remote
+ desktop session.
+ * "disable-animations" (b): Set to "true" if the screen cast application
+ would prefer animations to be globally
+ disabled, while the session is running. Default
+ is "false". Available since version 3.
+ -->
+ <method name="CreateSession">
+ <arg name="properties" type="a{sv}" direction="in" />
+ <arg name="session_path" type="o" direction="out" />
+ </method>
+
+ <!--
+ Version:
+ @short_description: API version
+ -->
+ <property name="Version" type="i" access="read" />
+
+ </interface>
+
+ <!--
+ org.gnome.Mutter.ScreenCast.Session:
+ @short_description: Screen cast session
+ -->
+ <interface name="org.gnome.Mutter.ScreenCast.Session">
+
+ <!--
+ Start:
+
+ Start the screen cast session
+ -->
+ <method name="Start" />
+
+ <!--
+ Stop:
+
+ Stop the screen cast session
+ -->
+ <method name="Stop" />
+
+ <!--
+ Closed:
+
+ The session has closed.
+ -->
+ <signal name="Closed" />
+
+ <!--
+ RecordMonitor:
+ @connector: Connector of the monitor to record
+ @properties: Properties
+ @stream_path: Path to the new stream object
+
+ Record a single monitor.
+
+ Available @properties include:
+
+ * "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
+ Available since API version 2.
+ * "is-recording" (b): Whether this is a screen recording. May be
+ be used for choosing panel icon.
+ Default: false. Available since API version 4.
+
+ Available cursor mode values:
+
+ 0: hidden - cursor is not included in the stream
+ 1: embedded - cursor is included in the framebuffer
+ 2: metadata - cursor is included as metadata in the PipeWire stream
+ -->
+ <method name="RecordMonitor">
+ <arg name="connector" type="s" direction="in" />
+ <arg name="properties" type="a{sv}" direction="in" />
+ <arg name="stream_path" type="o" direction="out" />
+ </method>
+
+ <!--
+ RecordWindow:
+ @properties: Properties used determining what window to select
+ @stream_path: Path to the new stream object
+
+ Supported since API version 2.
+
+ Record a single window. The cursor will not be included.
+
+ Available @properties include:
+
+ * "window-id" (t): Id of the window to record.
+ * "cursor-mode" (u): Cursor mode. Default: 'hidden' (see RecordMonitor).
+ * "is-recording" (b): Whether this is a screen recording. May be
+ be used for choosing panel icon.
+ Default: false. Available since API version 4.
+
+ -->
+ <method name="RecordWindow">
+ <arg name="properties" type="a{sv}" direction="in" />
+ <arg name="stream_path" type="o" direction="out" />
+ </method>
+
+ <!--
+ RecordArea:
+ @x: X position of the recorded area
+ @y: Y position of the recorded area
+ @width: width of the recorded area
+ @height: height of the recorded area
+ @properties: Properties
+ @stream_path: Path to the new stream object
+
+ Record an area of the stage. The coordinates are in stage coordinates.
+ The size of the stream does not necessarily match the size of the
+ recorded area, and will depend on DPI scale of the affected monitors.
+
+ Available @properties include:
+
+ * "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
+ Available since API version 2.
+ * "is-recording" (b): Whether this is a screen recording. May be
+ be used for choosing panel icon.
+ Default: false. Available since API version 4.
+
+ Available cursor mode values:
+
+ 0: hidden - cursor is not included in the stream
+ 1: embedded - cursor is included in the framebuffer
+ 2: metadata - cursor is included as metadata in the PipeWire stream
+ -->
+ <method name="RecordArea">
+ <arg name="x" type="i" direction="in" />
+ <arg name="y" type="i" direction="in" />
+ <arg name="width" type="i" direction="in" />
+ <arg name="height" type="i" direction="in" />
+ <arg name="properties" type="a{sv}" direction="in" />
+ <arg name="stream_path" type="o" direction="out" />
+ </method>
+ </interface>
+
+ <!--
+ org.gnome.Mutter.ScreenCast.Stream:
+ @short_description: Screen cast stream
+ -->
+ <interface name="org.gnome.Mutter.ScreenCast.Stream">
+
+ <!--
+ PipeWireStreamAdded:
+ @short_description: Pipewire stream added
+
+ A signal emitted when PipeWire stream for the screen cast stream has
+ been created. The @node_id corresponds to the PipeWire stream node.
+ -->
+ <signal name="PipeWireStreamAdded">
+ <annotation name="org.gtk.GDBus.C.Name" value="pipewire-stream-added"/>
+ <arg name="node_id" type="u" direction="out" />
+ </signal>
+
+ <!--
+ Parameters:
+ @short_description: Optional stream parameters
+
+ Available parameters include:
+
+ * "position" (ii): Position of the source of the stream in the
+ compositor coordinate space.
+ * "size" (ii): Size of the source of the stream in the compositor
+ coordinate space.
+ -->
+ <property name="Parameters" type="a{sv}" access="read" />
+
+ </interface>
+
+</node>
diff --git a/data/dbus-interfaces/org.gnome.ScreenSaver.xml b/data/dbus-interfaces/org.gnome.ScreenSaver.xml
new file mode 100644
index 0000000..5a2ca98
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.ScreenSaver.xml
@@ -0,0 +1,18 @@
+<node>
+ <interface name="org.gnome.ScreenSaver">
+ <method name="Lock"/>
+ <method name="GetActive">
+ <arg type="b" direction="out" name="active"/>
+ </method>
+ <method name="SetActive">
+ <arg type="b" direction="in" name="value"/>
+ </method>
+ <method name="GetActiveTime">
+ <arg type="u" direction="out" name="value"/>
+ </method>
+ <signal name="ActiveChanged">
+ <arg name="new_value" type="b"/>
+ </signal>
+ <signal name="WakeUpScreen"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SessionManager.EndSessionDialog.xml b/data/dbus-interfaces/org.gnome.SessionManager.EndSessionDialog.xml
new file mode 100644
index 0000000..3a57aa4
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SessionManager.EndSessionDialog.xml
@@ -0,0 +1,16 @@
+<node>
+ <interface name="org.gnome.SessionManager.EndSessionDialog">
+ <method name="Open">
+ <arg type="u" direction="in"/>
+ <arg type="u" direction="in"/>
+ <arg type="u" direction="in"/>
+ <arg type="ao" direction="in"/>
+ </method>
+ <method name="Close"/>
+ <signal name="ConfirmedLogout"/>
+ <signal name="ConfirmedReboot"/>
+ <signal name="ConfirmedShutdown"/>
+ <signal name="Canceled"/>
+ <signal name="Closed"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml b/data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml
new file mode 100644
index 0000000..c745f81
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml
@@ -0,0 +1,10 @@
+<node>
+ <interface name="org.gnome.SessionManager.Inhibitor">
+ <method name="GetAppId">
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="GetReason">
+ <arg type="s" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SessionManager.Presence.xml b/data/dbus-interfaces/org.gnome.SessionManager.Presence.xml
new file mode 100644
index 0000000..78bc604
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SessionManager.Presence.xml
@@ -0,0 +1,11 @@
+<node>
+ <interface name="org.gnome.SessionManager.Presence">
+ <method name="SetStatus">
+ <arg type="u" direction="in"/>
+ </method>
+ <property name="status" type="u" access="readwrite"/>
+ <signal name="StatusChanged">
+ <arg type="u" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SessionManager.xml b/data/dbus-interfaces/org.gnome.SessionManager.xml
new file mode 100644
index 0000000..c81c90f
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SessionManager.xml
@@ -0,0 +1,23 @@
+<node>
+ <interface name="org.gnome.SessionManager">
+ <method name="Logout">
+ <arg type="u" direction="in"/>
+ </method>
+ <method name="Shutdown"/>
+ <method name="Reboot"/>
+ <method name="CanShutdown">
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="IsInhibited">
+ <arg type="u" direction="in"/>
+ <arg type="b" direction="out"/>
+ </method>
+ <property name="SessionIsActive" type="b" access="read"/>
+ <signal name="InhibitorAdded">
+ <arg type="o" direction="out"/>
+ </signal>
+ <signal name="InhibitorRemoved">
+ <arg type="o" direction="out"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml b/data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml
new file mode 100644
index 0000000..1528f90
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml
@@ -0,0 +1,6 @@
+<node>
+ <interface name="org.gnome.SettingsDaemon.Color">
+ <property name="DisabledUntilTomorrow" type="b" access="readwrite"/>
+ <property name="NightLightActive" type="b" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SettingsDaemon.Power.Screen.xml b/data/dbus-interfaces/org.gnome.SettingsDaemon.Power.Screen.xml
new file mode 100644
index 0000000..05e4b8d
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SettingsDaemon.Power.Screen.xml
@@ -0,0 +1,5 @@
+<node>
+ <interface name="org.gnome.SettingsDaemon.Power.Screen">
+ <property name="Brightness" type="i" access="readwrite"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml b/data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml
new file mode 100644
index 0000000..628b17f
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml
@@ -0,0 +1,10 @@
+<node>
+ <interface name="org.gnome.SettingsDaemon.Rfkill">
+ <property name="AirplaneMode" type="b" access="readwrite"/>
+ <property name="HardwareAirplaneMode" type="b" access="read"/>
+ <property name="BluetoothAirplaneMode" type="b" access="readwrite"/>
+ <property name="BluetoothHasAirplaneMode" type="b" access="read"/>
+ <property name="BluetoothHardwareAirplaneMode" type="b" access="readwrite"/>
+ <property name="ShouldShowAirplaneMode" type="b" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml b/data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml
new file mode 100644
index 0000000..1370214
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml
@@ -0,0 +1,13 @@
+<node>
+<interface name="org.gnome.SettingsDaemon.Wacom">
+ <method name="SetGroupModeLED">
+ <arg name="device_path" direction="in" type="s"/>
+ <arg name="group" direction="in" type="u"/>
+ <arg name="mode" direction="in" type="u"/>
+ </method>
+ <method name="SetOLEDLabels">
+ <arg name="device_path" direction="in" type="s"/>
+ <arg name="labels" direction="in" type="as"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.AudioDeviceSelection.xml b/data/dbus-interfaces/org.gnome.Shell.AudioDeviceSelection.xml
new file mode 100644
index 0000000..28cc6da
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.AudioDeviceSelection.xml
@@ -0,0 +1,12 @@
+<node>
+ <interface name="org.gnome.Shell.AudioDeviceSelection">
+ <method name="Open">
+ <arg name="devices" direction="in" type="as"/>
+ </method>
+ <method name="Close">
+ </method>
+ <signal name="DeviceSelected">
+ <arg name="device" type="s"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml b/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml
new file mode 100644
index 0000000..51b71ef
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml
@@ -0,0 +1,19 @@
+<node>
+ <interface name="org.gnome.Shell.CalendarServer">
+ <method name="SetTimeRange">
+ <arg type="x" name="since" direction="in"/>
+ <arg type="x" name="until" direction="in"/>
+ <arg type="b" name="force_reload" direction="in"/>
+ </method>
+ <signal name="EventsAddedOrUpdated">
+ <arg type="a(ssbxxa{sv})" name="events" direction="out"/>
+ </signal>
+ <signal name="EventsRemoved">
+ <arg type="as" name="ids" direction="out"/>
+ </signal>
+ <signal name="ClientDisappeared">
+ <arg type="s" name="source_uid" direction="out"/>
+ </signal>
+ <property name="HasCalendars" type="b" access="read" />
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.ClocksIntegration.xml b/data/dbus-interfaces/org.gnome.Shell.ClocksIntegration.xml
new file mode 100644
index 0000000..0cbb132
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.ClocksIntegration.xml
@@ -0,0 +1,15 @@
+<node>
+
+ <!--
+ org.gnome.Shell.ClocksIntegration:
+ @short_description: Clocks integration interface
+
+ The interface used for exporting location settings to GNOME Shell's
+ world clocks integration.
+ -->
+ <interface name="org.gnome.Shell.ClocksIntegration">
+
+ <property name="Locations" type="av" access="read"/>
+
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml
new file mode 100644
index 0000000..ab80c10
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml
@@ -0,0 +1,267 @@
+<!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>
diff --git a/data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml b/data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml
new file mode 100644
index 0000000..b4373cc
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml
@@ -0,0 +1,8 @@
+<node>
+ <interface name="org.gnome.Shell.HotplugSniffer">
+ <method name="SniffURI">
+ <arg type="s" direction="in"/>
+ <arg type="as" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.Introspect.xml b/data/dbus-interfaces/org.gnome.Shell.Introspect.xml
new file mode 100644
index 0000000..47fd7ef
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.Introspect.xml
@@ -0,0 +1,83 @@
+<!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" />
+
+ <!--
+ 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>
diff --git a/data/dbus-interfaces/org.gnome.Shell.PadOsd.xml b/data/dbus-interfaces/org.gnome.Shell.PadOsd.xml
new file mode 100644
index 0000000..765973c
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.PadOsd.xml
@@ -0,0 +1,28 @@
+<!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.PadOSD:
+ @short_description: Pad OSD interface
+
+ The interface used to show button map OSD on pad devices.
+ -->
+ <interface name='org.gnome.Shell.Wacom.PadOsd'>
+
+ <!--
+ Show:
+ @device_node: device node file, usually in /dev/input/...
+ @edition_mode: whether toggling edition mode on when showing
+
+ Shows the pad button map OSD for the requested device, the OSD
+ will be shown according the current device settings (output
+ mapping, left handed mode, ...)
+ -->
+ <method name='Show'>
+ <arg name='device_node' direction='in' type='o'/>
+ <arg name='edition_mode' direction='in' type='b'/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml b/data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml
new file mode 100644
index 0000000..98fea27
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml
@@ -0,0 +1,13 @@
+<node>
+ <interface name="org.gnome.Shell.PerfHelper">
+ <method name="CreateWindow">
+ <arg type="i" direction="in"/>
+ <arg type="i" direction="in"/>
+ <arg type="b" direction="in"/>
+ <arg type="b" direction="in"/>
+ <arg type="b" direction="in"/>
+ </method>
+ <method name="WaitWindows"/>
+ <method name="DestroyWindows"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml b/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml
new file mode 100644
index 0000000..8c6a13e
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml
@@ -0,0 +1,19 @@
+<node>
+ <interface name="org.gnome.Shell.PortalHelper">
+ <method name="Authenticate">
+ <arg name="connection" type="o" direction="in"/>
+ <arg name="url" type="s" direction="in"/>
+ <arg name="timestamp" type="u" direction="in"/>
+ </method>
+ <method name="Close">
+ <arg name="connection" type="o" direction="in"/>
+ </method>
+ <method name="Refresh">
+ <arg name="connection" type="o" direction="in"/>
+ </method>
+ <signal name="Done">
+ <arg type="o" name="connection"/>
+ <arg type="u" name="result"/>
+ </signal>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.Screencast.xml b/data/dbus-interfaces/org.gnome.Shell.Screencast.xml
new file mode 100644
index 0000000..f188cf7
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.Screencast.xml
@@ -0,0 +1,95 @@
+<!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.Screencast:
+ @short_description: Screencast interface
+
+ The interface used to record screen contents.
+ -->
+ <interface name="org.gnome.Shell.Screencast">
+
+ <!--
+ Screencast:
+ @file_template: the template for the filename to use
+ @options: a dictionary of optional parameters
+ @success: whether the screencast was started successfully
+ @filename_used: the file where the screencast is being saved
+
+ Records a screencast of the whole screen and saves it
+ (by default) as webm video under a filename derived from
+ @file_template. The template is either a relative or absolute
+ filename which may contain some escape sequences - %d and %t
+ will be replaced by the start date and time of the recording.
+ If a relative name is used, the screencast will be saved in the
+ $XDG_VIDEOS_DIR if it exists, or the home directory otherwise.
+ The actual filename of the saved video is returned in @filename_used.
+ The set of optional parameters in @options currently consists of:
+ 'draw-cursor'(b): whether the cursor should be included in the
+ recording (true)
+ 'framerate'(i): the number of frames per second that should be
+ recorded if possible (30)
+ 'pipeline'(s): the GStreamer pipeline used to encode recordings
+ in gst-launch format; if not specified, the
+ recorder will produce vp8 (webm) video (unset)
+ -->
+ <method name="Screencast">
+ <arg type="s" direction="in" name="file_template"/>
+ <arg type="a{sv}" direction="in" name="options"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="filename_used"/>
+ </method>
+
+ <!--
+ ScreencastArea:
+ @x: the X coordinate of the area to capture
+ @y: the Y coordinate of the area to capture
+ @width: the width of the area to capture
+ @height: the height of the area to capture
+ @file_template: the template for the filename to use
+ @options: a dictionary of optional parameters
+ @success: whether the screencast was started successfully
+ @filename_used: the file where the screencast is being saved
+
+ Records a screencast of the passed in area and saves it
+ (by default) as webm video under a filename derived from
+ @file_template. The template is either a relative or absolute
+ filename which may contain some escape sequences - %d and %t
+ will be replaced by the start date and time of the recording.
+ If a relative name is used, the screencast will be saved in the
+ $XDG_VIDEOS_DIR if it exists, or the home directory otherwise.
+ The actual filename of the saved video is returned in @filename_used.
+ The set of optional parameters in @options currently consists of:
+ 'draw-cursor'(b): whether the cursor should be included in the
+ recording (true)
+ 'framerate'(i): the number of frames per second that should be
+ recorded if possible (30)
+ 'pipeline'(s): the GStreamer pipeline used to encode recordings
+ in gst-launch format; if not specified, the
+ recorder will produce vp8 (webm) video (unset)
+ -->
+ <method name="ScreencastArea">
+ <arg type="i" direction="in" name="x"/>
+ <arg type="i" direction="in" name="y"/>
+ <arg type="i" direction="in" name="width"/>
+ <arg type="i" direction="in" name="height"/>
+ <arg type="s" direction="in" name="file_template"/>
+ <arg type="a{sv}" direction="in" name="options"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="filename_used"/>
+ </method>
+
+ <!--
+ StopScreencast:
+ @success: whether stopping the recording was successful
+
+ Stop the recording started by either Screencast or ScreencastArea.
+ -->
+ <method name="StopScreencast">
+ <arg type="b" direction="out" name="success"/>
+ </method>
+
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.Screenshot.xml b/data/dbus-interfaces/org.gnome.Shell.Screenshot.xml
new file mode 100644
index 0000000..528b01e
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.Screenshot.xml
@@ -0,0 +1,145 @@
+<!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.Screenshot:
+ @short_description: Screenshot interface
+
+ The interface used to capture pictures of the screen contents.
+ -->
+ <interface name="org.gnome.Shell.Screenshot">
+
+ <!--
+ Screenshot:
+ @filename: The filename for the screenshot
+ @include_cursor: Whether to include the cursor image or not
+ @flash: Whether to flash the screen or not
+ @success: whether the screenshot was captured
+ @filename_used: the file where the screenshot was saved
+
+ Takes a screenshot of the whole screen and saves it
+ in @filename as png image, it returns a boolean
+ indicating whether the operation was successful or not.
+ @filename can either be an absolute path or a basename, in
+ which case the screenshot will be saved in the $XDG_PICTURES_DIR
+ or the home directory if it doesn't exist. The filename used
+ to save the screenshot will be returned in @filename_used.
+ -->
+ <method name="Screenshot">
+ <arg type="b" direction="in" name="include_cursor"/>
+ <arg type="b" direction="in" name="flash"/>
+ <arg type="s" direction="in" name="filename"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="filename_used"/>
+ </method>
+
+ <!--
+ ScreenshotWindow:
+ @include_frame: Whether to include the frame or not
+ @include_cursor: Whether to include the cursor image or not
+ @flash: Whether to flash the window area or not
+ @filename: The filename for the screenshot
+ @success: whether the screenshot was captured
+ @filename_used: the file where the screenshot was saved
+
+ Takes a screenshot of the focused window (optionally omitting the frame)
+ and saves it in @filename as png image, it returns a boolean
+ indicating whether the operation was successful or not.
+ @filename can either be an absolute path or a basename, in
+ which case the screenshot will be saved in the $XDG_PICTURES_DIR
+ or the home directory if it doesn't exist. The filename used
+ to save the screenshot will be returned in @filename_used.
+ -->
+ <method name="ScreenshotWindow">
+ <arg type="b" direction="in" name="include_frame"/>
+ <arg type="b" direction="in" name="include_cursor"/>
+ <arg type="b" direction="in" name="flash"/>
+ <arg type="s" direction="in" name="filename"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="filename_used"/>
+ </method>
+
+ <!--
+ ScreenshotArea:
+ @x: the X coordinate of the area to capture
+ @y: the Y coordinate of the area to capture
+ @width: the width of the area to capture
+ @height: the height of the area to capture
+ @flash: whether to flash the area or not
+ @filename: the filename for the screenshot
+ @success: whether the screenshot was captured
+ @filename_used: the file where the screenshot was saved
+
+ Takes a screenshot of the passed in area and saves it
+ in @filename as png image, it returns a boolean
+ indicating whether the operation was successful or not.
+ @filename can either be an absolute path or a basename, in
+ which case the screenshot will be saved in the $XDG_PICTURES_DIR
+ or the home directory if it doesn't exist. The filename used
+ to save the screenshot will be returned in @filename_used.
+ -->
+ <method name="ScreenshotArea">
+ <arg type="i" direction="in" name="x"/>
+ <arg type="i" direction="in" name="y"/>
+ <arg type="i" direction="in" name="width"/>
+ <arg type="i" direction="in" name="height"/>
+ <arg type="b" direction="in" name="flash"/>
+ <arg type="s" direction="in" name="filename"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="filename_used"/>
+ </method>
+
+ <!--
+ PickColor:
+
+ Picks a color and returns the result.
+
+ The @result vardict contains:
+ <variablelist>
+ <varlistentry>
+ <term>color (ddd)</term>
+ <listitem><para>The color, RGB values in the range [0,1].</para></listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <method name="PickColor">
+ <arg type="a{sv}" direction="out" name="result"/>
+ </method>
+
+ <!--
+ FlashArea:
+ @x: the X coordinate of the area to flash
+ @y: the Y coordinate of the area to flash
+ @width: the width of the area to flash
+ @height: the height of the area to flash
+
+ Renders a flash spot effect in the specified rectangle of the screen.
+ -->
+ <method name="FlashArea">
+ <arg type="i" direction="in" name="x"/>
+ <arg type="i" direction="in" name="y"/>
+ <arg type="i" direction="in" name="width"/>
+ <arg type="i" direction="in" name="height"/>
+ </method>
+
+ <!--
+ SelectArea:
+ @x: the X coordinate of the selected area
+ @y: the Y coordinate of the selected area
+ @width: the width of the selected area
+ @height: the height of the selected area
+
+ Interactively allows the user to select a rectangular area of
+ the screen, and returns its coordinates.
+ -->
+ <method name="SelectArea">
+ <arg type="i" direction="out" name="x"/>
+ <arg type="i" direction="out" name="y"/>
+ <arg type="i" direction="out" name="width"/>
+ <arg type="i" direction="out" name="height"/>
+ </method>
+
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml b/data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml
new file mode 100644
index 0000000..5e046c7
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml
@@ -0,0 +1,8 @@
+<node>
+ <interface name="org.gnome.Shell.Wacom.PadOsd">
+ <method name="Show">
+ <arg name="device_node" direction="in" type="o"/>
+ <arg name="edition_mode" direction="in" type="b"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.WeatherIntegration.xml b/data/dbus-interfaces/org.gnome.Shell.WeatherIntegration.xml
new file mode 100644
index 0000000..1e89bbe
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.WeatherIntegration.xml
@@ -0,0 +1,16 @@
+<node>
+
+ <!--
+ org.gnome.Shell.WeatherIntegration:
+ @short_description: Weather integration interface
+
+ The interface used for exporting location settings to GNOME Shell's
+ weather integration.
+ -->
+ <interface name="org.gnome.Shell.WeatherIntegration">
+
+ <property name="AutomaticLocation" type="b" access="read"/>
+ <property name="Locations" type="av" access="read"/>
+
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.Shell.xml b/data/dbus-interfaces/org.gnome.Shell.xml
new file mode 100644
index 0000000..38154cb
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Shell.xml
@@ -0,0 +1,46 @@
+<node>
+ <interface name="org.gnome.Shell">
+ <method name="Eval">
+ <arg type="s" direction="in" name="script"/>
+ <arg type="b" direction="out" name="success"/>
+ <arg type="s" direction="out" name="result"/>
+ </method>
+ <method name="FocusSearch"/>
+ <method name="ShowOSD">
+ <arg type="a{sv}" direction="in" name="params"/>
+ </method>
+ <method name="ShowMonitorLabels">
+ <arg type="a{sv}" direction="in" name="params"/>
+ </method>
+ <method name="HideMonitorLabels"/>
+ <method name="FocusApp">
+ <arg type="s" direction="in" name="id"/>
+ </method>
+ <method name="ShowApplications"/>
+ <method name="GrabAccelerator">
+ <arg type="s" direction="in" name="accelerator"/>
+ <arg type="u" direction="in" name="modeFlags"/>
+ <arg type="u" direction="in" name="grabFlags"/>
+ <arg type="u" direction="out" name="action"/>
+ </method>
+ <method name="GrabAccelerators">
+ <arg type="a(suu)" direction="in" name="accelerators"/>
+ <arg type="au" direction="out" name="actions"/>
+ </method>
+ <method name="UngrabAccelerator">
+ <arg type="u" direction="in" name="action"/>
+ <arg type="b" direction="out" name="success"/>
+ </method>
+ <method name="UngrabAccelerators">
+ <arg type="au" direction="in" name="action"/>
+ <arg type="b" direction="out" name="success"/>
+ </method>
+ <signal name="AcceleratorActivated">
+ <arg name="action" type="u"/>
+ <arg name="parameters" type="a{sv}"/>
+ </signal>
+ <property name="Mode" type="s" access="read"/>
+ <property name="OverviewActive" type="b" access="readwrite"/>
+ <property name="ShellVersion" type="s" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.ShellSearchProvider.xml b/data/dbus-interfaces/org.gnome.ShellSearchProvider.xml
new file mode 100644
index 0000000..78ad305
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.ShellSearchProvider.xml
@@ -0,0 +1,73 @@
+<!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.SearchProvider:
+ @short_description: Search provider interface
+
+ The interface used for integrating into GNOME Shell's search
+ interface. This interface is deprecated, and org.gnome.Shell.SearchProvider2 should be used instead.
+ -->
+ <interface name="org.gnome.Shell.SearchProvider">
+
+ <!--
+ GetInitialResultSet:
+ @terms: Array of search terms, which the provider should treat as logical AND.
+ @results: An array of result identifier strings representing items which match the given search terms. Identifiers must be unique within the provider's domain, but other than that may be chosen freely by the provider.
+
+ Called when the user first begins a search.
+ -->
+ <method name="GetInitialResultSet">
+ <arg type="as" name="terms" direction="in" />
+ <arg type="as" name="results" direction="out" />
+ </method>
+
+ <!--
+ GetSubsearchResultSet:
+ @previous_results: Array of results previously returned by GetInitialResultSet().
+ @terms: Array of updated search terms, which the provider should treat as logical AND.
+ @results: An array of result identifier strings representing items which match the given search terms. Identifiers must be unique within the provider's domain, but other than that may be chosen freely by the provider.
+
+ Called when a search is performed which is a "subsearch" of
+ the previous search, e.g. the method may return less results, but
+ not more or different results.
+
+ This allows search providers to only search through the previous
+ result set, rather than possibly performing a full re-query.
+ -->
+ <method name="GetSubsearchResultSet">
+ <arg type="as" name="previous_results" direction="in" />
+ <arg type="as" name="terms" direction="in" />
+ <arg type="as" name="results" direction="out" />
+ </method>
+
+ <!--
+ GetResultMetas:
+ @identifiers: An array of result identifiers as returned by GetInitialResultSet() or GetSubsearchResultSet()
+ @metas: A dictionary describing the given search result, containing a human-readable 'name' (string), along with the result identifier this meta is for, 'id' (string). Optionally, either 'gicon' (a serialized GIcon) or 'icon-data' (raw image data as (iiibiiay) - width, height, rowstride, has-alpha, bits per sample, channels, data) can be specified if the result can be better served with a thumbnail of the content (such as with images). A 'description' field (string) may also be specified if more context would help the user find the desired result.
+
+ Return an array of meta data used to display each given result
+ -->
+ <method name="GetResultMetas">
+ <arg type="as" name="identifiers" direction="in" />
+ <arg type="aa{sv}" name="metas" direction="out" />
+ </method>
+
+ <!--
+ ActivateResult:
+ @identifier: A result identifier as returned by GetInitialResultSet() or GetSubsearchResultSet()
+
+ Called when the users chooses a given result. The result should
+ be displayed in the application associated with the corresponding
+ provider.
+
+ This method is deprecated, and providers should implement ActivateResult2()
+ instead.
+ -->
+ <method name="ActivateResult">
+ <arg type="s" name="identifier" direction="in" />
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gnome.ShellSearchProvider2.xml b/data/dbus-interfaces/org.gnome.ShellSearchProvider2.xml
new file mode 100644
index 0000000..9502340
--- /dev/null
+++ b/data/dbus-interfaces/org.gnome.ShellSearchProvider2.xml
@@ -0,0 +1,87 @@
+<!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.SearchProvider2:
+ @short_description: Search provider interface
+
+ The interface used for integrating into GNOME Shell's search
+ interface (version 2).
+ -->
+ <interface name="org.gnome.Shell.SearchProvider2">
+
+ <!--
+ GetInitialResultSet:
+ @terms: Array of search terms, which the provider should treat as logical AND.
+ @results: An array of result identifier strings representing items which match the given search terms. Identifiers must be unique within the provider's domain, but other than that may be chosen freely by the provider.
+
+ Called when the user first begins a search.
+ -->
+ <method name="GetInitialResultSet">
+ <arg type="as" name="terms" direction="in" />
+ <arg type="as" name="results" direction="out" />
+ </method>
+
+ <!--
+ GetSubsearchResultSet:
+ @previous_results: Array of results previously returned by GetInitialResultSet().
+ @terms: Array of updated search terms, which the provider should treat as logical AND.
+ @results: An array of result identifier strings representing items which match the given search terms. Identifiers must be unique within the provider's domain, but other than that may be chosen freely by the provider.
+
+ Called when a search is performed which is a "subsearch" of
+ the previous search, e.g. the method may return less results, but
+ not more or different results.
+
+ This allows search providers to only search through the previous
+ result set, rather than possibly performing a full re-query.
+ -->
+ <method name="GetSubsearchResultSet">
+ <arg type="as" name="previous_results" direction="in" />
+ <arg type="as" name="terms" direction="in" />
+ <arg type="as" name="results" direction="out" />
+ </method>
+
+ <!--
+ GetResultMetas:
+ @identifiers: An array of result identifiers as returned by GetInitialResultSet() or GetSubsearchResultSet()
+ @metas: A dictionary describing the given search result, containing a human-readable 'name' (string), along with the result identifier this meta is for, 'id' (string). Optionally, 'icon' (a serialized GIcon as obtained by g_icon_serialize) can be specified if the result can be better served with a thumbnail of the content (such as with images). 'gicon' (a serialized GIcon as obtained by g_icon_to_string) or 'icon-data' (raw image data as (iiibiiay) - width, height, rowstride, has-alpha, bits per sample, channels, data) are deprecated values that can also be used for that purpose. A 'description' field (string) may also be specified if more context would help the user find the desired result.
+
+ Return an array of meta data used to display each given result
+ -->
+ <method name="GetResultMetas">
+ <arg type="as" name="identifiers" direction="in" />
+ <arg type="aa{sv}" name="metas" direction="out" />
+ </method>
+
+ <!--
+ ActivateResult:
+ @identifier: A result identifier as returned by GetInitialResultSet() or GetSubsearchResultSet()
+ @terms: Array of search terms, which the provider should treat as logical AND.
+ @timestamp: A timestamp of the user interaction that triggered this call
+
+ Called when the users chooses a given result. The result should
+ be displayed in the application associated with the corresponding
+ provider. The provided search terms can be used to allow launching a full search in
+ the application.
+ -->
+ <method name="ActivateResult">
+ <arg type="s" name="identifier" direction="in" />
+ <arg type="as" name="terms" direction="in" />
+ <arg type="u" name="timestamp" direction="in" />
+ </method>
+
+ <!--
+ LaunchSearch:
+ @terms: Array of search terms, which the provider should treat as logical AND.
+ @timestamp: A timestamp of the user interaction that triggered this call
+
+ Asks the search provider to launch a full search in the application for the provided terms.
+ -->
+ <method name="LaunchSearch">
+ <arg type="as" name="terms" direction="in" />
+ <arg type="u" name="timestamp" direction="in" />
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.gtk.Notifications.xml b/data/dbus-interfaces/org.gtk.Notifications.xml
new file mode 100644
index 0000000..e2461ff
--- /dev/null
+++ b/data/dbus-interfaces/org.gtk.Notifications.xml
@@ -0,0 +1,13 @@
+<node>
+ <interface name="org.gtk.Notifications">
+ <method name="AddNotification">
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ <arg type="a{sv}" direction="in"/>
+ </method>
+ <method name="RemoveNotification">
+ <arg type="s" direction="in"/>
+ <arg type="s" direction="in"/>
+ </method>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml b/data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml
new file mode 100644
index 0000000..550cb4c
--- /dev/null
+++ b/data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml
@@ -0,0 +1,12 @@
+<node>
+ <interface name="org.mpris.MediaPlayer2.Player">
+ <method name="PlayPause"/>
+ <method name="Next"/>
+ <method name="Previous"/>
+ <property name="CanGoNext" type="b" access="read"/>
+ <property name="CanGoPrevious" type="b" access="read"/>
+ <property name="CanPlay" type="b" access="read"/>
+ <property name="Metadata" type="a{sv}" access="read"/>
+ <property name="PlaybackStatus" type="s" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces/org.mpris.MediaPlayer2.xml b/data/dbus-interfaces/org.mpris.MediaPlayer2.xml
new file mode 100644
index 0000000..5febaf9
--- /dev/null
+++ b/data/dbus-interfaces/org.mpris.MediaPlayer2.xml
@@ -0,0 +1,7 @@
+<node>
+ <interface name="org.mpris.MediaPlayer2">
+ <method name="Raise"/>
+ <property name="CanRaise" type="b" access="read"/>
+ <property name="DesktopEntry" type="s" access="read"/>
+ </interface>
+</node>