wl-mitm/proto/fake-input.xml
Peter Cai 76f4ae4a73 Include all known protocols from wayland-explorer
Also adjust the build scripts so that we don't just export one big Rust
file...
2025-03-02 18:19:23 -05:00

95 lines
4.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<protocol name="fake_input">
<copyright><![CDATA[
SPDX-FileCopyrightText: 2015 Martin Gräßlin
SPDX-License-Identifier: LGPL-2.1-or-later
]]></copyright>
<interface name="org_kde_kwin_fake_input" version="5">
<description summary="Fake input manager">
This interface allows other processes to provide fake input events.
Purpose is on the one hand side to provide testing facilities like XTest on X11.
But also to support use case like kdeconnect's mouse pad interface.
A compositor should not trust the input received from this interface.
Clients should not expect that the compositor honors the requests from this
interface.
Warning! The protocol described in this file is a desktop environment
implementation detail. Regular clients must not use this protocol.
Backward incompatible changes may be added without bumping the major
version of the extension.
</description>
<request name="authenticate">
<description summary="Information why the client wants to use the interface">
A client should use this request to tell the compositor why it wants to
use this interface. The compositor might use the information to decide
whether it wants to grant the request. The data might also be passed to
the user to decide whether the application should get granted access to
this very privileged interface.
</description>
<arg name="application" type="string" summary="user visible name of the application"/>
<arg name="reason" type="string" summary="reason why the application wants to use this interface"/>
</request>
<request name="pointer_motion">
<arg name="delta_x" type="fixed"/>
<arg name="delta_y" type="fixed"/>
</request>
<request name="button">
<arg name="button" type="uint"/>
<arg name="state" type="uint"/>
</request>
<request name="axis">
<arg name="axis" type="uint"/>
<arg name="value" type="fixed"/>
</request>
<request name="touch_down" since="2">
<description summary="touch down event">
A client should use this request to send touch down event at specific
coordinates.
</description>
<arg name="id" type="uint" summary="unique id for touch down event"/>
<arg name="x" type="fixed" summary="x coordinate for touch down event"/>
<arg name="y" type="fixed" summary="y coordinate for touch down event"/>
</request>
<request name="touch_motion" since="2">
<description summary="touch motion event">
A client should use this request to send touch motion to specific position.
</description>
<arg name="id" type="uint" summary="unique id for touch motion event"/>
<arg name="x" type="fixed" summary="x coordinate for touch motion event"/>
<arg name="y" type="fixed" summary="y coordinate for touch motion event"/>
</request>
<request name="touch_up" since="2">
<description summary="touch up event">
A client should use this request to send touch up event.
</description>
<arg name="id" type="uint" summary="unique id for touch up event"/>
</request>
<request name="touch_cancel" since="2">
<description summary="touch cancel event">
A client should use this request to cancel the current
touch event.
</description>
</request>
<request name="touch_frame" since="2">
<description summary="touch frame event">
A client should use this request to send touch frame event.
</description>
</request>
<request name="pointer_motion_absolute" since="3">
<arg name="x" type="fixed"/>
<arg name="y" type="fixed"/>
</request>
<request name="keyboard_key" since="4">
<arg name="button" type="uint"/>
<arg name="state" type="uint"/>
</request>
<!-- Version 5 additions -->
<request name="destroy" type="destructor" since="5">
<description summary="Destroy the fake input device"/>
</request>
</interface>
</protocol>