Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
437 lines
18 KiB
XML
437 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
Copyright (C) 2017-2018 Red Hat, Inc.
|
|
|
|
SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
|
|
<!--
|
|
org.freedesktop.impl.portal.RemoteDesktop:
|
|
@short_description: Remote desktop portal backend interface
|
|
|
|
The Remote desktop portal allows to create remote desktop sessions.
|
|
|
|
This documentation describes version 2 of this interface.
|
|
-->
|
|
<interface name="org.freedesktop.impl.portal.RemoteDesktop">
|
|
<!--
|
|
CreateSession:
|
|
@handle: Object path for the :ref:`org.freedesktop.impl.portal.Request` object representing this call
|
|
@app_id: App id of the application
|
|
@options: Vardict with optional further information
|
|
@response: Numeric response
|
|
@results: Vardict with the results of the call
|
|
|
|
Create a remote desktop session.
|
|
|
|
A remote desktop session is used to allow remote controlling a desktop
|
|
session. It can also be used together with a screen cast session (see
|
|
org.freedesktop.portal.ScreenCast), but may only be started and stopped
|
|
with this interface.
|
|
|
|
The following results get returned in the @results vardict:
|
|
|
|
* ``session`` (``s``)
|
|
|
|
The session id. A string representing the created screen cast session.
|
|
-->
|
|
<method name="CreateSession">
|
|
<arg type="o" name="handle" direction="in"/>
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<arg type="s" name="app_id" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="response" direction="out"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="results" direction="out"/>
|
|
</method>
|
|
<!--
|
|
SelectDevices:
|
|
@handle: Object path for the :ref:`org.freedesktop.impl.portal.Request` object representing this call
|
|
@session_handle: Object path for the :ref:`org.freedesktop.impl.portal.Session` object representing the session
|
|
@app_id: App id of the application
|
|
@options: Vardict with optional further information
|
|
@response: Numeric response
|
|
@results: Vardict with the results of the call
|
|
|
|
Configure what the devices remote desktop session should expose.
|
|
|
|
Supported keys in the @options vardict include:
|
|
|
|
* ``types`` (``u``)
|
|
|
|
Bitmask of what device types to request remote controlling of.
|
|
Default is all.
|
|
|
|
* ``restore_data`` (``(suv)``)
|
|
|
|
The data to restore from a previous session.
|
|
|
|
If the stored session cannot be restored, this value is ignored
|
|
and the user will be prompted normally. This may happen when, for
|
|
example, the session contains a monitor or a window that is not
|
|
available anymore, or when the stored permissions are withdrawn.
|
|
|
|
The restore data is composed of the vendor name (e.g. "GNOME" or
|
|
"KDE"), the version of the implementation-specific private data,
|
|
and the implementation-specific private data itself.
|
|
|
|
This option was added in version 2 of this interface.
|
|
|
|
* ``persist_mode`` (``u``)
|
|
|
|
How this session should persist. Default is 0. Accepted values are:
|
|
|
|
- ``0``: Do not persist (default)
|
|
- ``1``: Permissions persist as long as the application is running
|
|
- ``2``: Permissions persist until explicitly revoked
|
|
|
|
If the permission for the session to persist is granted, ``restore_data``
|
|
will be returned in the results of the
|
|
#org.freedesktop.impl.portal.RemoteDesktop.Start method.
|
|
|
|
This option was added in version 2 of this interface.
|
|
|
|
For available device types, see the AvailableDeviceTypes property.
|
|
-->
|
|
<method name="SelectDevices">
|
|
<arg type="o" name="handle" direction="in"/>
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<arg type="s" name="app_id" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="response" direction="out"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="results" direction="out"/>
|
|
</method>
|
|
<!--
|
|
Start:
|
|
@handle: Object path for the :ref:`org.freedesktop.impl.portal.Request` object representing this call
|
|
@app_id: App id of the application
|
|
@parent_window: Identifier for the application window, see :doc:`window-identifiers`
|
|
@session_handle: Identifier for the remote desktop session
|
|
@parent_window: Identifier for the application window
|
|
@options: Vardict with optional further information
|
|
@response: Numeric response
|
|
@results: Vardict with the results of the call
|
|
|
|
Start the remote desktop session. This will typically result the portal
|
|
presenting a dialog.
|
|
|
|
Supported keys in the @options vardict include:
|
|
|
|
* ``handle_token`` (``s``)
|
|
|
|
A string that will be used as the last element of the @handle. Must be a valid
|
|
object path element. See the :ref:`org.freedesktop.portal.Request` documentation for
|
|
more information about the @handle.
|
|
|
|
The following results get returned in the @results vardict:
|
|
|
|
* ``devices`` (``u``)
|
|
|
|
A bitmask of the devices selected by the user.
|
|
|
|
* ``clipboard_enabled`` (``b``)
|
|
|
|
A boolean for whether the clipboard was enabled ('true') or not ('false').
|
|
See the :ref:`org.freedesktop.portal.Clipboard` documentation for more information.
|
|
|
|
Since version 2.
|
|
|
|
* ``streams`` (``a(ua{sv})``)
|
|
|
|
Equivalent to the streams entry documented in
|
|
:ref:`org.freedesktop.impl.portal.ScreenCast.Start`.
|
|
|
|
* ``devices`` (``u``)
|
|
|
|
The device types that can be used for remote control. See the
|
|
AvailableDeviceTypes property.
|
|
-->
|
|
<method name="Start">
|
|
<arg type="o" name="handle" direction="in"/>
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<arg type="s" name="app_id" direction="in"/>
|
|
<arg type="s" name="parent_window" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In4" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="response" direction="out"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="results" direction="out"/>
|
|
</method>
|
|
<!--
|
|
NotifyPointerMotion:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@dx: Relative movement on the x axis
|
|
@dy: Relative movement on the y axis
|
|
|
|
Notify about a new relative pointer motion event. The (dx, dy) vector
|
|
represents the new pointer position in the streams logical coordinate
|
|
space.
|
|
-->
|
|
<method name="NotifyPointerMotion">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="d" name="dx" direction="in"/>
|
|
<arg type="d" name="dy" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyPointerMotionAbsolute:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@stream: The PipeWire stream node the coordinate is relative to
|
|
@x: Pointer motion x coordinate
|
|
@y: Pointer motion y coordinate
|
|
|
|
Notify about a new absolute pointer motion event. The (x, y) position
|
|
represents the new pointer position in the streams logical coordinate
|
|
space (see the logical_size stream property in
|
|
:ref:`org.freedesktop.portal.ScreenCast`).
|
|
-->
|
|
<method name="NotifyPointerMotionAbsolute">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="stream" direction="in"/>
|
|
<arg type="d" name="x" direction="in"/>
|
|
<arg type="d" name="y" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyPointerButton:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@button: The pointer button was pressed or released
|
|
@state: The new state of the button
|
|
|
|
The pointer button is encoded according to Linux Evdev button codes.
|
|
|
|
May only be called if POINTER access was provided after starting the
|
|
session.
|
|
|
|
Available button states:
|
|
|
|
- ``0``: Released
|
|
- ``1``: Pressed
|
|
-->
|
|
<method name="NotifyPointerButton">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="i" name="button" direction="in"/>
|
|
<arg type="u" name="state" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyPointerAxis:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@dx: Relative axis movement on the x axis
|
|
@dy: Relative axis movement on the y axis
|
|
|
|
The axis movement from a 'smooth scroll' device, such as a touchpad.
|
|
When applicable, the size of the motion delta should be equivalent to
|
|
the motion vector of a pointer motion done using the same advice.
|
|
|
|
May only be called if POINTER access was provided after starting the
|
|
session.
|
|
|
|
Supported keys in the @options vardict include:
|
|
|
|
* ``finish`` (``b``)
|
|
|
|
If set to true, this is the last axis event in a series, for
|
|
example as a result of the fingers being lifted from a touchpad
|
|
after a two-finger scroll. Default is false.
|
|
-->
|
|
<method name="NotifyPointerAxis">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="d" name="dx" direction="in"/>
|
|
<arg type="d" name="dy" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyPointerAxisDiscrete:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@axis: The axis that was scrolled
|
|
@steps: The number of steps scrolled
|
|
|
|
May only be called if POINTER access was provided after starting the
|
|
session.
|
|
|
|
Available axes:
|
|
|
|
- ``0``: Vertical scroll
|
|
- ``1``: Horizontal scroll
|
|
-->
|
|
<method name="NotifyPointerAxisDiscrete">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="axis" direction="in"/>
|
|
<arg type="i" name="steps" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyKeyboardKeycode:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@keycode: Keyboard code that was pressed or released
|
|
@state: New state of keyboard keysym
|
|
|
|
May only be called if KEYBOARD access was provided after starting the
|
|
session.
|
|
|
|
Available keyboard keysym states:
|
|
|
|
- ``0``: Released
|
|
- ``1``: Pressed
|
|
-->
|
|
<method name="NotifyKeyboardKeycode">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="i" name="keycode" direction="in"/>
|
|
<arg type="u" name="state" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyKeyboardKeysym:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@keysym: Keyboard symbol that was pressed or released
|
|
@state: New state of keyboard keysym
|
|
|
|
May only be called if KEYBOARD access was provided after starting the
|
|
session.
|
|
|
|
Available keyboard keysym states:
|
|
|
|
- ``0``: Released
|
|
- ``1``: Pressed
|
|
-->
|
|
<method name="NotifyKeyboardKeysym">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="i" name="keysym" direction="in"/>
|
|
<arg type="u" name="state" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyTouchDown:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@stream: The PipeWire stream node the coordinate is relative to
|
|
@slot: Touch slot where touch point appeared
|
|
@x: Touch down x coordinate
|
|
@y: Touch down y coordinate
|
|
|
|
May only be called if TOUCHSCREEN access was provided after starting the
|
|
session.
|
|
|
|
Notify about a new touch down event. The (x, y) position
|
|
represents the new touch point position in the streams logical
|
|
coordinate space (see the ``logical_size`` stream property in
|
|
:ref:`org.freedesktop.portal.ScreenCast`).
|
|
-->
|
|
<method name="NotifyTouchDown">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="stream" direction="in"/>
|
|
<arg type="u" name="slot" direction="in"/>
|
|
<arg type="d" name="x" direction="in"/>
|
|
<arg type="d" name="y" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyTouchMotion:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@stream: The PipeWire stream node the coordinate is relative to
|
|
@slot: Touch slot where touch point appeared
|
|
@x: Touch motion x coordinate
|
|
@y: Touch motion y coordinate
|
|
|
|
May only be called if TOUCHSCREEN access was provided after starting the
|
|
session.
|
|
|
|
Notify about a new touch motion event. The (x, y) position
|
|
represents where the touch point position in the streams logical
|
|
coordinate space moved (see the ``logical_size`` stream property in
|
|
:ref:`org.freedesktop.portal.ScreenCast`).
|
|
-->
|
|
<method name="NotifyTouchMotion">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="stream" direction="in"/>
|
|
<arg type="u" name="slot" direction="in"/>
|
|
<arg type="d" name="x" direction="in"/>
|
|
<arg type="d" name="y" direction="in"/>
|
|
</method>
|
|
<!--
|
|
NotifyTouchUp:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@options: Vardict with optional further information
|
|
@slot: Touch slot where touch point appeared
|
|
|
|
May only be called if TOUCHSCREEN access was provided after starting the
|
|
session.
|
|
|
|
Notify about a new touch up event.
|
|
-->
|
|
<method name="NotifyTouchUp">
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="u" name="slot" direction="in"/>
|
|
</method>
|
|
<!--
|
|
ConnectToEIS:
|
|
@session_handle: Object path for the :ref:`org.freedesktop.portal.Session` object
|
|
@app_id: App id of the application
|
|
@options: Vardict with optional further information
|
|
@fd: A file descriptor to an EIS implementation that can be passed to a
|
|
sender libei context
|
|
|
|
Request a connection to an EIS implementation.
|
|
|
|
This method is available in version 2 of this interface.
|
|
-->
|
|
<method name="ConnectToEIS">
|
|
<annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
|
|
<arg type="o" name="session_handle" direction="in"/>
|
|
<arg type="s" name="app_id" direction="in"/>
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap"/>
|
|
<arg type="a{sv}" name="options" direction="in"/>
|
|
<arg type="h" name="fd" direction="out"/>
|
|
</method>
|
|
<!--
|
|
AvailableDeviceTypes:
|
|
|
|
A bitmask of available source types. Currently defined types are:
|
|
|
|
- ``1``: KEYBOARD
|
|
- ``2``: POINTER
|
|
- ``4``: TOUCHSCREEN
|
|
-->
|
|
<property name="AvailableDeviceTypes" type="u" access="read"/>
|
|
<property name="version" type="u" access="read"/>
|
|
</interface>
|
|
</node>
|