Warning, /plasma/kpipewire/tests/org.freedesktop.portal.RemoteDesktop.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0"?>
0002 <!--
0003 Copyright (C) 2017-2018 Red Hat, Inc.
0004
0005 This library is free software; you can redistribute it and/or
0006 modify it under the terms of the GNU Lesser General Public
0007 License as published by the Free Software Foundation; either
0008 version 2 of the License, or (at your option) any later version.
0009
0010 This library is distributed in the hope that it will be useful,
0011 but WITHOUT ANY WARRANTY; without even the implied warranty of
0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0013 Lesser General Public License for more details.
0014
0015 You should have received a copy of the GNU Lesser General Public
0016 License along with this library. If not, see <http://www.gnu.org/licenses/>.
0017 -->
0018
0019 <node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
0020 <!--
0021 org.freedesktop.portal.RemoteDesktop:
0022 @short_description: Remote desktop portal
0023
0024 The Remote desktop portal allows to create remote desktop sessions.
0025
0026 This documentation describes version 1 of this interface.
0027 -->
0028 <interface name="org.freedesktop.portal.RemoteDesktop">
0029 <!--
0030 CreateSession:
0031 @options: Vardict with optional further information
0032 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0033
0034 Create a remote desktop session.
0035
0036 A remote desktop session is used to allow remote controlling a desktop
0037 session.
0038
0039 A remote desktop session may only be started and stopped with this interface,
0040 but you can use the #org.freedesktop.portal.Session object created with this
0041 method together with certain methods on the #org.freedesktop.portal.ScreenCast
0042 interface. Specifically, you can call
0043 org.freedesktop.portal.ScreenCast.SelectSources() to also get screen content,
0044 and org.freedesktop.portal.ScreenCast.OpenPipewireRemote() to acquire a file
0045 descriptor for a PipeWire remote. See #org.freedesktop.portal.ScreenCast for
0046 more information on how to use those methods.
0047
0048 Supported keys in the @options vardict include:
0049 <variablelist>
0050 <varlistentry>
0051 <term>handle_token s</term>
0052 <listitem><para>
0053 A string that will be used as the last element of the @handle. Must be a valid
0054 object path element. See the #org.freedesktop.portal.Request documentation for
0055 more information about the @handle.
0056 </para></listitem>
0057 </varlistentry>
0058 <varlistentry>
0059 <term>session_handle_token s</term>
0060 <listitem><para>
0061 A string that will be used as the last element of the session handle. Must be a valid
0062 object path element. See the #org.freedesktop.portal.Session documentation for
0063 more information about the session handle.
0064 </para></listitem>
0065 </varlistentry>
0066 </variablelist>
0067
0068 The following results get returned via the #org.freedesktop.portal.Request::Response signal:
0069 <variablelist>
0070 <varlistentry>
0071 <term>session_handle o</term>
0072 <listitem><para>
0073 The session handle. An object path for the
0074 #org.freedesktop.portal.Session object representing the created
0075 session.
0076 </para></listitem>
0077 </varlistentry>
0078 </variablelist>
0079 -->
0080 <method name="CreateSession">
0081 <arg type="a{sv}" name="options" direction="in"/>
0082 <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap" />
0083 <arg type="o" name="handle" direction="out"/>
0084 </method>
0085 <!--
0086 SelectDevices:
0087 @session_handle: Object path for the #org.freedesktop.portal.Session object
0088 @options: Vardict with optional further information
0089 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0090
0091 Select input devices to remote control.
0092
0093 Supported keys in the @options vardict include:
0094 <variablelist>
0095 <varlistentry>
0096 <term>handle_token s</term>
0097 <listitem><para>
0098 A string that will be used as the last element of the @handle. Must be a valid
0099 object path element. See the #org.freedesktop.portal.Request documentation for
0100 more information about the @handle.
0101 </para></listitem>
0102 </varlistentry>
0103 <varlistentry>
0104 <term>types u</term>
0105 <listitem><para>
0106 Bitmask of what device types to request remote controlling of.
0107 Default is all.
0108 </para></listitem>
0109 </varlistentry>
0110 </variablelist>
0111
0112 For available source types, see the AvailableDeviceTypes property.
0113 -->
0114 <method name="SelectDevices">
0115 <arg type="o" name="session_handle" direction="in"/>
0116 <arg type="a{sv}" name="options" direction="in"/>
0117 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0118 <arg type="o" name="handle" direction="out"/>
0119 </method>
0120 <!--
0121 Start:
0122 @session_handle: Object path for the #org.freedesktop.portal.Session object
0123 @parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link>
0124 @options: Vardict with optional further information
0125 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0126
0127 Start the remote desktop session. This will typically result in the portal
0128 presenting a dialog letting the user select what to share, including
0129 devices and optionally screen content if screen cast sources was
0130 selected.
0131
0132 Supported keys in the @options vardict include:
0133 <variablelist>
0134 <varlistentry>
0135 <term>handle_token s</term>
0136 <listitem><para>
0137 A string that will be used as the last element of the @handle. Must be a valid
0138 object path element. See the #org.freedesktop.portal.Request documentation for
0139 more information about the @handle.
0140 </para></listitem>
0141 </varlistentry>
0142 </variablelist>
0143
0144 The following results get returned via the
0145 #org.freedesktop.portal.Request::Response signal:
0146 <variablelist>
0147 <varlistentry>
0148 <term>devices u</term>
0149 <listitem><para>
0150 A bitmask of the devices selected by the user.
0151 </para></listitem>
0152 </varlistentry>
0153 </variablelist>
0154
0155 If a screen cast source was selected, the results of the
0156 #org.freedesktop.portal.ScreenCast.Start response signal may be
0157 included.
0158 -->
0159 <method name="Start">
0160 <arg type="o" name="session_handle" direction="in"/>
0161 <arg type="s" name="parent_window" direction="in"/>
0162 <arg type="a{sv}" name="options" direction="in"/>
0163 <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap" />
0164 <arg type="o" name="handle" direction="out"/>
0165 </method>
0166 <!--
0167 NotifyPointerMotion:
0168 @session_handle: Object path for the #org.freedesktop.portal.Session object
0169 @options: Vardict with optional further information
0170 @dx: Relative movement on the x axis
0171 @dy: Relative movement on the y axis
0172
0173 Notify about a new relative pointer motion event. The (dx, dy) vector
0174 represents the new pointer position in the streams logical coordinate
0175 space.
0176 -->
0177 <method name="NotifyPointerMotion">
0178 <arg type="o" name="session_handle" direction="in"/>
0179 <arg type="a{sv}" name="options" direction="in"/>
0180 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0181 <arg type="d" name="dx" direction="in"/>
0182 <arg type="d" name="dy" direction="in"/>
0183 </method>
0184 <!--
0185 NotifyPointerMotionAbsolute:
0186 @session_handle: Object path for the #org.freedesktop.portal.Session object
0187 @options: Vardict with optional further information
0188 @stream: The PipeWire stream node the coordinate is relative to
0189 @x: Pointer motion x coordinate
0190 @y: Pointer motion y coordinate
0191
0192 Notify about a new absolute pointer motion event. The (x, y) position
0193 represents the new pointer position in the streams logical coordinate
0194 space (see the logical_size stream property in
0195 #org.freedesktop.portal.ScreenCast).
0196 -->
0197 <method name="NotifyPointerMotionAbsolute">
0198 <arg type="o" name="session_handle" direction="in"/>
0199 <arg type="a{sv}" name="options" direction="in"/>
0200 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0201 <arg type="u" name="stream" direction="in"/>
0202 <arg type="d" name="x" direction="in"/>
0203 <arg type="d" name="y" direction="in"/>
0204 </method>
0205 <!--
0206 NotifyPointerButton:
0207 @session_handle: Object path for the #org.freedesktop.portal.Session object
0208 @options: Vardict with optional further information
0209 @button: The pointer button was pressed or released
0210 @state: The new state of the button
0211
0212 The pointer button is encoded according to Linux Evdev button codes.
0213
0214 May only be called if POINTER access was provided after starting the
0215 session.
0216
0217 Available button states:
0218 <simplelist>
0219 <member>0: Released</member>
0220 <member>1: Pressed</member>
0221 </simplelist>
0222 -->
0223 <method name="NotifyPointerButton">
0224 <arg type="o" name="session_handle" direction="in"/>
0225 <arg type="a{sv}" name="options" direction="in"/>
0226 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0227 <arg type="i" name="button" direction="in"/>
0228 <arg type="u" name="state" direction="in"/>
0229 </method>
0230 <!--
0231 NotifyPointerAxis:
0232 @session_handle: Object path for the #org.freedesktop.portal.Session object
0233 @options: Vardict with optional further information
0234 @dx: Relative axis movement on the x axis
0235 @dy: Relative axis movement on the y axis
0236
0237 The axis movement from a 'smooth scroll' device, such as a touchpad.
0238 When applicable, the size of the motion delta should be equivalent to
0239 the motion vector of a pointer motion done using the same advice.
0240
0241 May only be called if POINTER access was provided after starting the
0242 session.
0243
0244 Supported keys in the @options vardict include:
0245 <variablelist>
0246 <varlistentry>
0247 <term>finish b</term>
0248 <listitem><para>
0249 If set to true, this is the last axis event in a series, for
0250 example as a result of the fingers being lifted from a touchpad
0251 after a two-finger scroll. Default is false.
0252 </para></listitem>
0253 </varlistentry>
0254 </variablelist>
0255 -->
0256 <method name="NotifyPointerAxis">
0257 <arg type="o" name="session_handle" direction="in"/>
0258 <arg type="a{sv}" name="options" direction="in"/>
0259 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0260 <arg type="d" name="dx" direction="in"/>
0261 <arg type="d" name="dy" direction="in"/>
0262 </method>
0263 <!--
0264 NotifyPointerAxisDiscrete:
0265 @session_handle: Object path for the #org.freedesktop.portal.Session object
0266 @options: Vardict with optional further information
0267 @axis: The axis that was scrolled
0268 @steps: The number of steps scrolled
0269
0270 May only be called if POINTER access was provided after starting the
0271 session.
0272
0273 Available axes:
0274 <simplelist>
0275 <member>0: Vertical scroll</member>
0276 <member>1: Horizontal scroll</member>
0277 </simplelist>
0278 -->
0279 <method name="NotifyPointerAxisDiscrete">
0280 <arg type="o" name="session_handle" direction="in"/>
0281 <arg type="a{sv}" name="options" direction="in"/>
0282 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0283 <arg type="u" name="axis" direction="in"/>
0284 <arg type="i" name="steps" direction="in"/>
0285 </method>
0286 <!--
0287 NotifyKeyboardKeycode:
0288 @session_handle: Object path for the #org.freedesktop.portal.Session object
0289 @options: Vardict with optional further information
0290 @keycode: Keyboard code that was pressed or released
0291 @state: New state of keyboard keycode
0292
0293 May only be called if KEYBOARD access was provided after starting the
0294 session.
0295
0296 Available keyboard keycode states:
0297 <simplelist>
0298 <member>0: Released</member>
0299 <member>1: Pressed</member>
0300 </simplelist>
0301 -->
0302 <method name="NotifyKeyboardKeycode">
0303 <arg type="o" name="session_handle" direction="in"/>
0304 <arg type="a{sv}" name="options" direction="in"/>
0305 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0306 <arg type="i" name="keycode" direction="in"/>
0307 <arg type="u" name="state" direction="in"/>
0308 </method>
0309 <!--
0310 NotifyKeyboardKeysym:
0311 @session_handle: Object path for the #org.freedesktop.portal.Session object
0312 @options: Vardict with optional further information
0313 @keysym: Keyboard symbol that was pressed or released
0314 @state: New state of keyboard keysym
0315
0316 May only be called if KEYBOARD access was provided after starting the
0317 session.
0318
0319 Available keyboard keysym states:
0320 <simplelist>
0321 <member>0: Released</member>
0322 <member>1: Pressed</member>
0323 </simplelist>
0324 -->
0325 <method name="NotifyKeyboardKeysym">
0326 <arg type="o" name="session_handle" direction="in"/>
0327 <arg type="a{sv}" name="options" direction="in"/>
0328 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0329 <arg type="i" name="keysym" direction="in"/>
0330 <arg type="u" name="state" direction="in"/>
0331 </method>
0332 <!--
0333 NotifyTouchDown:
0334 @session_handle: Object path for the #org.freedesktop.portal.Session object
0335 @options: Vardict with optional further information
0336 @stream: The PipeWire stream node the coordinate is relative to
0337 @slot: Touch slot where touch point appeared
0338 @x: Touch down x coordinate
0339 @y: Touch down y coordinate
0340
0341 May only be called if TOUCHSCREEN access was provided after starting the
0342 session.
0343
0344 Notify about a new touch down event. The (x, y) position
0345 represents the new touch point position in the streams logical
0346 coordinate space (see the logical_size stream property in
0347 #org.freedesktop.portal.ScreenCast).
0348 -->
0349 <method name="NotifyTouchDown">
0350 <arg type="o" name="session_handle" direction="in"/>
0351 <arg type="a{sv}" name="options" direction="in"/>
0352 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0353 <arg type="u" name="stream" direction="in"/>
0354 <arg type="u" name="slot" direction="in"/>
0355 <arg type="d" name="x" direction="in"/>
0356 <arg type="d" name="y" direction="in"/>
0357 </method>
0358 <!--
0359 NotifyTouchMotion:
0360 @session_handle: Object path for the #org.freedesktop.portal.Session object
0361 @options: Vardict with optional further information
0362 @stream: The PipeWire stream node the coordinate is relative to
0363 @slot: Touch slot where touch point appeared
0364 @x: Touch motion x coordinate
0365 @y: Touch motion y coordinate
0366
0367 May only be called if TOUCHSCREEN access was provided after starting the
0368 session.
0369
0370 Notify about a new touch motion event. The (x, y) position
0371 represents where the touch point position in the streams logical
0372 coordinate space moved (see the logical_size stream property in
0373 #org.freedesktop.portal.ScreenCast).
0374 -->
0375 <method name="NotifyTouchMotion">
0376 <arg type="o" name="session_handle" direction="in"/>
0377 <arg type="a{sv}" name="options" direction="in"/>
0378 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0379 <arg type="u" name="stream" direction="in"/>
0380 <arg type="u" name="slot" direction="in"/>
0381 <arg type="d" name="x" direction="in"/>
0382 <arg type="d" name="y" direction="in"/>
0383 </method>
0384 <!--
0385 NotifyTouchUp:
0386 @session_handle: Object path for the #org.freedesktop.portal.Session object
0387 @options: Vardict with optional further information
0388 @slot: Touch slot where touch point appeared
0389
0390 May only be called if TOUCHSCREEN access was provided after starting the
0391 session.
0392
0393 Notify about a new touch up event.
0394 -->
0395 <method name="NotifyTouchUp">
0396 <arg type="o" name="session_handle" direction="in"/>
0397 <arg type="a{sv}" name="options" direction="in"/>
0398 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0399 <arg type="u" name="slot" direction="in"/>
0400 </method>
0401 <!--
0402 AvailableDeviceTypes:
0403
0404 A bitmask of available source types. Currently defined types are:
0405
0406 <simplelist>
0407 <member>1: KEYBOARD</member>
0408 <member>2: POINTER</member>
0409 <member>4: TOUCHSCREEN</member>
0410 </simplelist>
0411 -->
0412 <property name="AvailableDeviceTypes" type="u" access="read"/>
0413 <property name="version" type="u" access="read"/>
0414 </interface>
0415 </node>