Remote desktop

Remote desktop — allow remote control of the session

Functions

Types and Values

Description

A remote desktop session allows to inject events into the input stream.

The underlying portal is org.freedesktop.portal.RemoteDesktop.

Functions

xdp_portal_create_remote_desktop_session ()

void
xdp_portal_create_remote_desktop_session
                               (XdpPortal *portal,
                                XdpDeviceType devices,
                                XdpOutputType outputs,
                                gboolean multiple,
                                GCancellable *cancellable,
                                GAsyncReadyCallback callback,
                                gpointer data);

Creates a session for remote desktop.

When the request is done, callback will be called. You can then call xdp_portal_create_remote_desktop_session_finish() to get the results.

Parameters

portal

a XdpPortal

 

devices

which kinds of input devices to ofer in the new dialog

 

outputs

which kinds of source to offer in the dialog

 

multiple

whether to allow selecting multiple sources

 

cancellable

optional GCancellable.

[nullable]

callback

a callback to call when the request is done.

[scope async]

data

data to pass to callback .

[closure]

xdp_portal_create_remote_desktop_session_finish ()

XdpSession *
xdp_portal_create_remote_desktop_session_finish
                               (XdpPortal *portal,
                                GAsyncResult *result,
                                GError **error);

Finishes the create-remote-desktop request, and returns an XdpSession.

Parameters

portal

a XdpPortal

 

result

a GAsyncResult

 

error

return location for an error

 

Returns

a XdpSession.

[transfer full]


xdp_session_pointer_motion ()

void
xdp_session_pointer_motion (XdpSession *session,
                            double dx,
                            double dy);

Moves the pointer from its current position.

May only be called on a remote desktop session with XDP_DEVICE_POINTER access.

Parameters

session

a XdpSession

 

dx

relative horizontal movement

 

dy

relative vertical movement

 

xdp_session_pointer_position ()

void
xdp_session_pointer_position (XdpSession *session,
                              guint stream,
                              double x,
                              double y);

Moves the pointer to a new position in the given streams logical coordinate space.

May only be called on a remote desktop session with XDP_DEVICE_POINTER access.

Parameters

session

a XdpSession

 

stream

the node ID of the pipewire stream the position is relative to

 

x

new X position

 

y

new Y position

 

xdp_session_pointer_button ()

void
xdp_session_pointer_button (XdpSession *session,
                            int button,
                            XdpButtonState state);

Changes the state of the button to state .

May only be called on a remote desktop session with XDP_DEVICE_POINTER access.

Parameters

session

a XdpSession

 

button

the button

 

state

the new state

 

xdp_session_pointer_axis ()

void
xdp_session_pointer_axis (XdpSession *session,
                          gboolean finish,
                          double dx,
                          double dy);

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 on a remote desktop session with XDP_DEVICE_POINTER access.

Parameters

session

a XdpSession

 

finish

whether this is the last in a series of related events

 

dx

relative axis movement on the X axis

 

dy

relative axis movement on the Y axis

 

xdp_session_pointer_axis_discrete ()

void
xdp_session_pointer_axis_discrete (XdpSession *session,
                                   XdpDiscreteAxis axis,
                                   int steps);

The axis movement from a discrete scroll device.

May only be called on a remote desktop session with XDP_DEVICE_POINTER access.

Parameters

session

a XdpSession

 

axis

the axis to change

 

steps

number of steps scrolled

 

xdp_session_keyboard_key ()

void
xdp_session_keyboard_key (XdpSession *session,
                          gboolean keysym,
                          int key,
                          XdpKeyState state);

Changes the state of the key to state .

May only be called on a remote desktop session with XDP_DEVICE_KEYBOARD access.

Parameters

session

a remote desktop XdpSession

 

keysym

whether to interpret key as a keysym instead of a keycode

 

key

the keysym or keycode to change

 

state

the new state

 

xdp_session_touch_down ()

void
xdp_session_touch_down (XdpSession *session,
                        guint stream,
                        guint slot,
                        double x,
                        double y);

Notify about a new touch down event. The (x, y) position represents the new touch point position in the streams logical coordinate space.

May only be called on a remote desktop session with XDP_DEVICE_TOUCHSCREEN access.

Parameters

session

a XdpSession

 

stream

the node ID of the pipewire stream the position is relative to

 

slot

touch slot where the touch point appeared

 

x

new X position

 

y

new Y position

 

xdp_session_touch_position ()

void
xdp_session_touch_position (XdpSession *session,
                            guint stream,
                            guint slot,
                            double x,
                            double y);

Notify about a new touch motion event. The (x, y) position represents where the touch point position in the streams logical coordinate space moved.

May only be called on a remote desktop session with XDP_DEVICE_TOUCHSCREEN access.

Parameters

session

a XdpSession

 

stream

the node ID of the pipewire stream the position is relative to

 

slot

touch slot that is changing position

 

x

new X position

 

y

new Y position

 

xdp_session_touch_up ()

void
xdp_session_touch_up (XdpSession *session,
                      guint slot);

Notify about a new touch up event.

May only be called on a remote desktop session with XDP_DEVICE_TOUCHSCREEN access.

Parameters

session

a XdpSession

 

slot

touch slot that changed

 

Types and Values

enum XdpDeviceType

Flags to specify what input devices to control for a remote desktop session.

Members

XDP_DEVICE_KEYBOARD

control the keyboard.

 

XDP_DEVICE_POINTER

control the pointer.

 

XDP_DEVICE_TOUCHSCREEN

control the touchscreen.

 

XDP_DEVICE_NONE

#define XDP_DEVICE_NONE 0

The value to use as null value for XdpDeviceType.


XDP_DEVICE_ALL

#define XDP_DEVICE_ALL (XDP_DEVICE_KEYBOARD | XDP_DEVICE_POINTER | XDP_DEVICE_TOUCHSCREEN)

A convenient value to select all possible input devices.


enum XdpButtonState

The XdpButtonState enumeration is used to describe the state of buttons.

Members

XDP_BUTTON_RELEASED

the button is down

 

XDP_BUTTON_PRESSED

the button is up

 

enum XdpDiscreteAxis

The XdpDiscreteAxis enumeration is used to describe the discrete scroll axes.

Members

XDP_AXIS_HORIZONTAL_SCROLL

the horizontal scroll axis

 

XDP_AXIS_VERTICAL_SCROLL

the horizontal scroll axis

 

enum XdpKeyState

The XdpKeyState enumeration is used to describe the state of keys.

Members

XDP_KEY_RELEASED

the key is down

 

XDP_KEY_PRESSED

the key is up