Warning, /network/kdeconnect-kde/interfaces/systeminterfaces/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 2 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 and 0042 #org.freedesktop.portal.Clipboard interfaces. 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. To capture clipboard content, 0047 you can call org.freedesktop.portal.Clipboard.RequestClipboard(). See 0048 #org.freedesktop.portal.Clipboard for more information on the clipboard 0049 integration. 0050 0051 Supported keys in the @options vardict include: 0052 <variablelist> 0053 <varlistentry> 0054 <term>handle_token s</term> 0055 <listitem><para> 0056 A string that will be used as the last element of the @handle. Must be a valid 0057 object path element. See the #org.freedesktop.portal.Request documentation for 0058 more information about the @handle. 0059 </para></listitem> 0060 </varlistentry> 0061 <varlistentry> 0062 <term>session_handle_token s</term> 0063 <listitem><para> 0064 A string that will be used as the last element of the session handle. Must be a valid 0065 object path element. See the #org.freedesktop.portal.Session documentation for 0066 more information about the session handle. 0067 </para></listitem> 0068 </varlistentry> 0069 </variablelist> 0070 0071 The following results get returned via the #org.freedesktop.portal.Request::Response signal: 0072 <variablelist> 0073 <varlistentry> 0074 <term>session_handle o</term> 0075 <listitem><para> 0076 The session handle. An object path for the 0077 #org.freedesktop.portal.Session object representing the created 0078 session. 0079 </para></listitem> 0080 </varlistentry> 0081 </variablelist> 0082 --> 0083 <method name="CreateSession"> 0084 <arg type="a{sv}" name="options" direction="in"/> 0085 <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap"/> 0086 <arg type="o" name="handle" direction="out"/> 0087 </method> 0088 <!-- 0089 SelectDevices: 0090 @session_handle: Object path for the #org.freedesktop.portal.Session object 0091 @options: Vardict with optional further information 0092 @handle: Object path for the #org.freedesktop.portal.Request object representing this call 0093 0094 Select input devices to remote control. 0095 0096 Supported keys in the @options vardict include: 0097 <variablelist> 0098 <varlistentry> 0099 <term>handle_token s</term> 0100 <listitem><para> 0101 A string that will be used as the last element of the @handle. Must be a valid 0102 object path element. See the #org.freedesktop.portal.Request documentation for 0103 more information about the @handle. 0104 </para></listitem> 0105 </varlistentry> 0106 <varlistentry> 0107 <term>types u</term> 0108 <listitem><para> 0109 Bitmask of what device types to request remote controlling of. 0110 Default is all. 0111 </para></listitem> 0112 </varlistentry> 0113 <varlistentry> 0114 <term>restore_token s</term> 0115 <listitem><para> 0116 The token to restore a previous session. 0117 0118 If the stored session cannot be restored, this value is ignored 0119 and the user will be prompted normally. This may happen when, for 0120 example, the session contains a monitor or a window that is not 0121 available anymore, or when the stored permissions are withdrawn. 0122 0123 The restore token is invalidated after using it once. To restore 0124 the same session again, use the new restore token sent in response 0125 to starting this session. 0126 0127 This option was added in version 2 of this interface. 0128 </para></listitem> 0129 </varlistentry> 0130 <varlistentry> 0131 <term>persist_mode u</term> 0132 <listitem><para> 0133 How this session should persist. Default is 0. Accepted values are: 0134 0135 <simplelist> 0136 <member>0: Do not persist (default)</member> 0137 <member>1: Permissions persist as long as the application is running</member> 0138 <member>2: Permissions persist until explicitly revoked</member> 0139 </simplelist> 0140 0141 If the permission for the session to persist is granted, a restore token will 0142 be returned via the #org.freedesktop.portal.Request::Response signal of the 0143 start method used to start the session. 0144 0145 This option was added in version 2 of this interface. 0146 </para></listitem> 0147 </varlistentry> 0148 </variablelist> 0149 0150 For available device types, see the AvailableDeviceTypes property. 0151 --> 0152 <method name="SelectDevices"> 0153 <arg type="o" name="session_handle" direction="in"/> 0154 <arg type="a{sv}" name="options" direction="in"/> 0155 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0156 <arg type="o" name="handle" direction="out"/> 0157 </method> 0158 <!-- 0159 Start: 0160 @session_handle: Object path for the #org.freedesktop.portal.Session object 0161 @parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link> 0162 @options: Vardict with optional further information 0163 @handle: Object path for the #org.freedesktop.portal.Request object representing this call 0164 0165 Start the remote desktop session. This will typically result in the portal 0166 presenting a dialog letting the user select what to share, including 0167 devices and optionally screen content if screen cast sources was 0168 selected. 0169 0170 Supported keys in the @options vardict include: 0171 <variablelist> 0172 <varlistentry> 0173 <term>handle_token s</term> 0174 <listitem><para> 0175 A string that will be used as the last element of the @handle. Must be a valid 0176 object path element. See the #org.freedesktop.portal.Request documentation for 0177 more information about the @handle. 0178 </para></listitem> 0179 </varlistentry> 0180 </variablelist> 0181 0182 The following results get returned via the 0183 #org.freedesktop.portal.Request::Response signal: 0184 <variablelist> 0185 <varlistentry> 0186 <term>devices u</term> 0187 <listitem><para> 0188 A bitmask of the devices selected by the user. 0189 </para></listitem> 0190 </varlistentry> 0191 <varlistentry> 0192 <term>clipboard_enabled b</term> 0193 <listitem><para> 0194 A boolean for whether the clipboard was enabled ('true') or not ('false'). 0195 See the #org.freedesktop.portal.Clipboard documentation for more information. 0196 Since version 2. 0197 </para></listitem> 0198 </varlistentry> 0199 <varlistentry> 0200 <term>restore_token s</term> 0201 <listitem><para> 0202 The restore token. This token is a single use token that can later 0203 be used to restore a session. See 0204 org.freedesktop.portal.RemoteDesktop.SelectDevices() for details. 0205 0206 This response option was added in version 2 of this interface. 0207 </para></listitem> 0208 </varlistentry> 0209 </variablelist> 0210 0211 If a screen cast source was selected, the results of the 0212 #org.freedesktop.portal.ScreenCast.Start response signal may be 0213 included. 0214 --> 0215 <method name="Start"> 0216 <arg type="o" name="session_handle" direction="in"/> 0217 <arg type="s" name="parent_window" direction="in"/> 0218 <arg type="a{sv}" name="options" direction="in"/> 0219 <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap"/> 0220 <arg type="o" name="handle" direction="out"/> 0221 </method> 0222 <!-- 0223 NotifyPointerMotion: 0224 @session_handle: Object path for the #org.freedesktop.portal.Session object 0225 @options: Vardict with optional further information 0226 @dx: Relative movement on the x axis 0227 @dy: Relative movement on the y axis 0228 0229 Notify about a new relative pointer motion event. The (dx, dy) vector 0230 represents the new pointer position in the streams logical coordinate 0231 space. 0232 --> 0233 <method name="NotifyPointerMotion"> 0234 <arg type="o" name="session_handle" direction="in"/> 0235 <arg type="a{sv}" name="options" direction="in"/> 0236 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0237 <arg type="d" name="dx" direction="in"/> 0238 <arg type="d" name="dy" direction="in"/> 0239 </method> 0240 <!-- 0241 NotifyPointerMotionAbsolute: 0242 @session_handle: Object path for the #org.freedesktop.portal.Session object 0243 @options: Vardict with optional further information 0244 @stream: The PipeWire stream node the coordinate is relative to 0245 @x: Pointer motion x coordinate 0246 @y: Pointer motion y coordinate 0247 0248 Notify about a new absolute pointer motion event. The (x, y) position 0249 represents the new pointer position in the streams logical coordinate 0250 space (see the logical_size stream property in 0251 #org.freedesktop.portal.ScreenCast). 0252 --> 0253 <method name="NotifyPointerMotionAbsolute"> 0254 <arg type="o" name="session_handle" direction="in"/> 0255 <arg type="a{sv}" name="options" direction="in"/> 0256 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0257 <arg type="u" name="stream" direction="in"/> 0258 <arg type="d" name="x" direction="in"/> 0259 <arg type="d" name="y" direction="in"/> 0260 </method> 0261 <!-- 0262 NotifyPointerButton: 0263 @session_handle: Object path for the #org.freedesktop.portal.Session object 0264 @options: Vardict with optional further information 0265 @button: The pointer button was pressed or released 0266 @state: The new state of the button 0267 0268 The pointer button is encoded according to Linux Evdev button codes. 0269 0270 May only be called if POINTER access was provided after starting the 0271 session. 0272 0273 Available button states: 0274 <simplelist> 0275 <member>0: Released</member> 0276 <member>1: Pressed</member> 0277 </simplelist> 0278 --> 0279 <method name="NotifyPointerButton"> 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="i" name="button" direction="in"/> 0284 <arg type="u" name="state" direction="in"/> 0285 </method> 0286 <!-- 0287 NotifyPointerAxis: 0288 @session_handle: Object path for the #org.freedesktop.portal.Session object 0289 @options: Vardict with optional further information 0290 @dx: Relative axis movement on the x axis 0291 @dy: Relative axis movement on the y axis 0292 0293 The axis movement from a 'smooth scroll' device, such as a touchpad. 0294 When applicable, the size of the motion delta should be equivalent to 0295 the motion vector of a pointer motion done using the same advice. 0296 0297 May only be called if POINTER access was provided after starting the 0298 session. 0299 0300 Supported keys in the @options vardict include: 0301 <variablelist> 0302 <varlistentry> 0303 <term>finish b</term> 0304 <listitem><para> 0305 If set to true, this is the last axis event in a series, for 0306 example as a result of the fingers being lifted from a touchpad 0307 after a two-finger scroll. Default is false. 0308 </para></listitem> 0309 </varlistentry> 0310 </variablelist> 0311 --> 0312 <method name="NotifyPointerAxis"> 0313 <arg type="o" name="session_handle" direction="in"/> 0314 <arg type="a{sv}" name="options" direction="in"/> 0315 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0316 <arg type="d" name="dx" direction="in"/> 0317 <arg type="d" name="dy" direction="in"/> 0318 </method> 0319 <!-- 0320 NotifyPointerAxisDiscrete: 0321 @session_handle: Object path for the #org.freedesktop.portal.Session object 0322 @options: Vardict with optional further information 0323 @axis: The axis that was scrolled 0324 @steps: The number of steps scrolled 0325 0326 May only be called if POINTER access was provided after starting the 0327 session. 0328 0329 Available axes: 0330 <simplelist> 0331 <member>0: Vertical scroll</member> 0332 <member>1: Horizontal scroll</member> 0333 </simplelist> 0334 --> 0335 <method name="NotifyPointerAxisDiscrete"> 0336 <arg type="o" name="session_handle" direction="in"/> 0337 <arg type="a{sv}" name="options" direction="in"/> 0338 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0339 <arg type="u" name="axis" direction="in"/> 0340 <arg type="i" name="steps" direction="in"/> 0341 </method> 0342 <!-- 0343 NotifyKeyboardKeycode: 0344 @session_handle: Object path for the #org.freedesktop.portal.Session object 0345 @options: Vardict with optional further information 0346 @keycode: Keyboard code that was pressed or released 0347 @state: New state of keyboard keycode 0348 0349 May only be called if KEYBOARD access was provided after starting the 0350 session. 0351 0352 Available keyboard keycode states: 0353 <simplelist> 0354 <member>0: Released</member> 0355 <member>1: Pressed</member> 0356 </simplelist> 0357 --> 0358 <method name="NotifyKeyboardKeycode"> 0359 <arg type="o" name="session_handle" direction="in"/> 0360 <arg type="a{sv}" name="options" direction="in"/> 0361 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0362 <arg type="i" name="keycode" direction="in"/> 0363 <arg type="u" name="state" direction="in"/> 0364 </method> 0365 <!-- 0366 NotifyKeyboardKeysym: 0367 @session_handle: Object path for the #org.freedesktop.portal.Session object 0368 @options: Vardict with optional further information 0369 @keysym: Keyboard symbol that was pressed or released 0370 @state: New state of keyboard keysym 0371 0372 May only be called if KEYBOARD access was provided after starting the 0373 session. 0374 0375 Available keyboard keysym states: 0376 <simplelist> 0377 <member>0: Released</member> 0378 <member>1: Pressed</member> 0379 </simplelist> 0380 --> 0381 <method name="NotifyKeyboardKeysym"> 0382 <arg type="o" name="session_handle" direction="in"/> 0383 <arg type="a{sv}" name="options" direction="in"/> 0384 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0385 <arg type="i" name="keysym" direction="in"/> 0386 <arg type="u" name="state" direction="in"/> 0387 </method> 0388 <!-- 0389 NotifyTouchDown: 0390 @session_handle: Object path for the #org.freedesktop.portal.Session object 0391 @options: Vardict with optional further information 0392 @stream: The PipeWire stream node the coordinate is relative to 0393 @slot: Touch slot where touch point appeared 0394 @x: Touch down x coordinate 0395 @y: Touch down y coordinate 0396 0397 May only be called if TOUCHSCREEN access was provided after starting the 0398 session. 0399 0400 Notify about a new touch down event. The (x, y) position 0401 represents the new touch point position in the streams logical 0402 coordinate space (see the logical_size stream property in 0403 #org.freedesktop.portal.ScreenCast). 0404 --> 0405 <method name="NotifyTouchDown"> 0406 <arg type="o" name="session_handle" direction="in"/> 0407 <arg type="a{sv}" name="options" direction="in"/> 0408 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0409 <arg type="u" name="stream" direction="in"/> 0410 <arg type="u" name="slot" direction="in"/> 0411 <arg type="d" name="x" direction="in"/> 0412 <arg type="d" name="y" direction="in"/> 0413 </method> 0414 <!-- 0415 NotifyTouchMotion: 0416 @session_handle: Object path for the #org.freedesktop.portal.Session object 0417 @options: Vardict with optional further information 0418 @stream: The PipeWire stream node the coordinate is relative to 0419 @slot: Touch slot where touch point appeared 0420 @x: Touch motion x coordinate 0421 @y: Touch motion y coordinate 0422 0423 May only be called if TOUCHSCREEN access was provided after starting the 0424 session. 0425 0426 Notify about a new touch motion event. The (x, y) position 0427 represents where the touch point position in the streams logical 0428 coordinate space moved (see the logical_size stream property in 0429 #org.freedesktop.portal.ScreenCast). 0430 --> 0431 <method name="NotifyTouchMotion"> 0432 <arg type="o" name="session_handle" direction="in"/> 0433 <arg type="a{sv}" name="options" direction="in"/> 0434 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0435 <arg type="u" name="stream" direction="in"/> 0436 <arg type="u" name="slot" direction="in"/> 0437 <arg type="d" name="x" direction="in"/> 0438 <arg type="d" name="y" direction="in"/> 0439 </method> 0440 <!-- 0441 NotifyTouchUp: 0442 @session_handle: Object path for the #org.freedesktop.portal.Session object 0443 @options: Vardict with optional further information 0444 @slot: Touch slot where touch point appeared 0445 0446 May only be called if TOUCHSCREEN access was provided after starting the 0447 session. 0448 0449 Notify about a new touch up event. 0450 --> 0451 <method name="NotifyTouchUp"> 0452 <arg type="o" name="session_handle" direction="in"/> 0453 <arg type="a{sv}" name="options" direction="in"/> 0454 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0455 <arg type="u" name="slot" direction="in"/> 0456 </method> 0457 0458 <!-- 0459 ConnectToEIS: 0460 @session_handle: Object path for the #org.freedesktop.portal.Session object 0461 @options: Vardict with optional further information 0462 @fd: A file descriptor to an EIS implementation that can be passed to a libei sender context 0463 0464 Request a connection to an EIS implementation. The returned handle can 0465 be passed to ei_setup_backend_fd() for a libei sender context to 0466 complete the connection. All information about available devices and the 0467 event flow is subject to libei. Please see the libei documentation for details. 0468 0469 This method may only be called once per session, where the EIS 0470 implementation disconnects the session should be closed. 0471 0472 This method must be called after #org.freedesktop.portal.RemoteDesktop.Start() 0473 0474 Once an EIS connection is established, input events must be sent exclusively via 0475 the EIS connection. Any events submitted via NotifyPointerMotion, 0476 NotifyKeyboardKeycode and other Notify* methods will return an error. 0477 0478 To see how to pair a PipeWire stream with a libei device region, see the 0479 documentation for the mapping_id stream property in 0480 #org.freedesktop.portal.RemoteDesktop.Start(). 0481 0482 This method was added in version 2 of this interface. 0483 --> 0484 <method name="ConnectToEIS"> 0485 <annotation name="org.gtk.GDBus.C.Name" value="connect_to_eis"/> 0486 <annotation name="org.gtk.GDBus.C.UnixFD" value="true"/> 0487 <arg type="o" name="session_handle" direction="in"/> 0488 <arg type="a{sv}" name="options" direction="in"/> 0489 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> 0490 <arg type="h" name="fd" direction="out"/> 0491 </method> 0492 0493 <!-- 0494 AvailableDeviceTypes: 0495 0496 A bitmask of available source types. Currently defined types are: 0497 0498 <simplelist> 0499 <member>1: KEYBOARD</member> 0500 <member>2: POINTER</member> 0501 <member>4: TOUCHSCREEN</member> 0502 </simplelist> 0503 --> 0504 <property name="AvailableDeviceTypes" type="u" access="read"/> 0505 <property name="version" type="u" access="read"/> 0506 </interface> 0507 </node>