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>