On Fri, Aug 03, 2018 at 07:12:29PM +0200, Dorota Czaplejewicz wrote: > 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, > > this is the change I wanted to send previously (sorry). > > Regards, > Dorota Czaplejewicz > > Makefile.am | 1 + > unstable/virtual-keyboard/README | 2 + > .../virtual-keyboard-unstable-v1.xml | 114 > +++++++++++++++++++++ > 3 files changed, 117 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..9eae804 > --- /dev/null > +++ b/unstable/virtual-keyboard/virtual-keyboard-unstable-v1.xml > @@ -0,0 +1,114 @@ > +<?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.
I suspect this needs the MAP_PRIVATE comment from wayland.xml as well. And in general a comment about the life time of that fd (until destroy, but it's nice to spell this out). > + </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. ... or else what happens? :) > + </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. as above Other than that, this looks good, thanks! Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Cheers, Peter > + </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"> > + Creates a new virtual keyboard associated to a seat. > + </description> > + <arg name="seat" type="object" interface="wl_seat"/> > + <arg name="id" type="new_id" interface="zwp_virtual_keyboard_v1" > + summary="the id of the newly created virtual keyboard"/> > + </request> > + > + <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 > wayland-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/wayland-devel > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel