Provides the ability to emulate keyboards by applications. Complementary to input-method protocol.
The interface is a mirror copy of wl_keyboard, with removed serials, and added seat binding. --- Hello again, I'm sending this patch to bring virtual-keyboard back in line with the v3 of the patch. This version doesn't contain any functional changes, but it's better formatted, and properties are referenced in a more idiomatic way. Having only minimal fixes compared to v3 (which is now also part of sway [0]), v5 looks pretty complete to me. Regards, Dorota Czaplejewicz [0] https://github.com/swaywm/sway/pull/2376 Makefile.am | 1 + unstable/virtual-keyboard/README | 2 + .../virtual-keyboard-unstable-v1.xml | 154 +++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 unstable/virtual-keyboard/README create mode 100644 unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml diff --git a/Makefile.am b/Makefile.am index 6394e26..d67aa1b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,6 +20,7 @@ unstable_protocols = \ unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml \ unstable/xdg-output/xdg-output-unstable-v1.xml \ unstable/input-timestamps/input-timestamps-unstable-v1.xml \ + unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml \ unstable/xdg-decoration/xdg-decoration-unstable-v1.xml \ $(NULL) diff --git a/unstable/virtual-keyboard/README b/unstable/virtual-keyboard/README new file mode 100644 index 0000000..a2c646d --- /dev/null +++ b/unstable/virtual-keyboard/README @@ -0,0 +1,2 @@ +Virtual keyboard protocol + diff --git a/unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml b/unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml new file mode 100644 index 0000000..173f3bc --- /dev/null +++ b/unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="virtual_keyboard_unstable_v1"> + <copyright> + Copyright © 2008-2011 Kristian Høgsberg + Copyright © 2010-2013 Intel Corporation + Copyright © 2012-2013 Collabora, Ltd. + Copyright © 2018 Purism SPC + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="zwp_virtual_keyboard_v1" version="1"> + <description summary="virtual keyboard"> + The virtual keyboard provides an application with requests which emulate + the behaviour of a physical keyboard. + + This interface can be used by clients on its own to provide raw input + events, or it can accompany the input method protocol. + </description> + + <request name="keymap"> + <description summary="keyboard mapping"> + Provide a file descriptor to the compositor which can be memory-mapped + to provide a keyboard mapping description. + </description> + <arg name="format" type="uint" enum="wl_keyboard.keymap_format" + summary="keymap format"/> + <arg name="fd" type="fd" summary="keymap file descriptor"/> + <arg name="size" type="uint" summary="keymap size, in bytes"/> + </request> + + <enum name="error"> + <entry name="no_keymap" value="0" summary="No keymap was set"/> + </enum> + + <request name="key"> + <description summary="key event"> + A key was pressed or released. + The time argument is a timestamp with millisecond granularity, with an + undefined base. All requests regarding a single object must share the + same clock. + + Keymap must be set before issuing this request. + </description> + <arg name="time" type="uint" + summary="timestamp with millisecond granularity"/> + <arg name="key" type="uint" summary="key that produced the event"/> + <arg name="state" type="uint" enum="wl_keyboard.key_state" + summary="physical state of the key"/> + </request> + + <request name="modifiers"> + <description summary="modifier and group state"> + Notifies the compositor that the modifier and/or group state has + changed, and it should update state. + + Keymap must be set before issuing this request. + </description> + <arg name="mods_depressed" type="uint" summary="depressed modifiers"/> + <arg name="mods_latched" type="uint" summary="latched modifiers"/> + <arg name="mods_locked" type="uint" summary="locked modifiers"/> + <arg name="group" type="uint" summary="keyboard layout"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy the virtual keyboard object"/> + </request> + </interface> + + <interface name="zwp_virtual_keyboard_manager_v1" version="1"> + <description summary="virtual keyboard manager"> + A virtual keyboard manager allows an application to provide keyboard + input events as if they came from a physical keyboard. + + If the compositor enables a keyboard to perform arbitrary actions, it + should prevent untrusted clients from using this interface. + </description> + + <request name="create_virtual_keyboard"> + <description summary="create a new virtual keyboard"> + Asks to create a new virtual keyboard associated to a seat. + + If the client is found unauthorized to create a virtual keyboard, then + it must receive the virtual_keyboard_create_failed event, with the + reason field set to unauthorized. + + Otherwise, the client must receive the virtual_keyboard_created event. + + Serial numbers used in consecutive create_virtual_keyboard requests + must form a sequence without repetitions. + </description> + <arg name="seat" type="object" interface="wl_seat"/> + <arg name="serial" type="uint"/> + </request> + + <enum name="virtual_keyboard_create_failed_reason"> + <entry name="unauthorized" value="0" + summary="client not authorized to use the request"/> + </enum> + + <event name="virtual_keyboard_create_failed"> + <description summary="creation of a new virtual keyboard failed"> + Indicates that a new virtual keyboard instance could not be created. + + Reason contains the reason why creation did not succeed. + + Serial is the serial number of the corresponding + create_virtual_keyboard request. + </description> + <arg name="reason" type="uint" + enum="virtual_keyboard_create_failed_reason" + summary="indicate the reason for this failure"/> + <arg name="serial" type="uint" description="serial number of request"/> + </event> + + <event name="virtual_keyboard_created"> + <description summary="successfully created a new virtual keyboard"> + Provides the client with the zwp_virtual_keyboard_v1 which was + previously requested using create_virtual_keyboard. + + Serial is the serial number of the corresponding + create_virtual_keyboard request. + </description> + <arg name="id" type="new_id" interface="zwp_virtual_keyboard_v1" + summary="the id of the newly created virtual keyboard"/> + <arg name="serial" type="uint" description="serial number of request"/> + </event> + + <request name="destroy" type="destructor"> + <description summary="destroy the virtual keyboard manager object"> + Destroys the virtual keyboard manager. + + Existing zwp_virtual_keyboard_v1 objects remain valid. + </description> + </request> + </interface> +</protocol> -- 2.14.4 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
