On Mon, Oct 19, 2015 at 01:17:57PM +0900, 박성진 wrote:
> >At least based on this example, I think this is fixing the wrong problem.
> >knowing which device sends a key is fairly meaningless unless you have 
> >direct access to the devices anyway (which you >probably don't, at least not 
> >in the default setups). And there are plenty of devices that have 
> >meaningless names made >from the pid/vid hex codes or even worse - "USB 
> >Keyboard".
> 
> Sorry for replying late. :)
> 
> Actually, as you mentioned, there are many keyboards which has {bus} Keyboard 
> something like that.
> I'm not telling that we need distinguish between a keyboard device (which 
> doesn't have any unique name) and the others.
> 
> We need to distinguish between a specific key device and the others,
> of course, the key device will have the its exact name which can be used as 
> an identifier.
> Then, there are some applications in which separate behavior needs to be done 
> for each of key device.
> Even though these kinds of requirements seem to be relatively rare, it'll be 
> wonderful if it exists in protocol.
> I'm mentioning from this point of view.
> 
> >the source of your problem is IMO that you're treating the remote control 
> >like a keyboard when it isn't one. This is >what we've been trying to solve 
> >with the buttonset interface in libinput (still WIP and needs a wayland 
> >protocol >extension). Those devices are merely sets of buttons and require 
> >their own focus control and behaviour, separate to >(and more domain-specific
> >than) keyboards. But it moves the issue into its own separate corner where 
> >it can be handled correctly, rather than >papering over the issues.
> 
> Right, by adding 'buttonset' into wayland protocol and by assigning a
> device as a buttonset device, we will be ready to have separate interface
> between keyboard and buttonset. Will there be any identifier in the
> buttonset interface?
> When it comes to identification between buttonsets, it'll be also needed
> to identify each of them, if required.

yep, the plan is to have identifiers. How exactly they'll look like I don't
know yet, we'll take some hints from the wl_tablet interface though and go
from there.

Cheers,
   Peter

 
> -----Original Message-----
> From: wayland-devel [mailto:wayland-devel-boun...@lists.freedesktop.org] On 
> Behalf Of Peter Hutterer
> Sent: Tuesday, October 13, 2015 2:01 PM
> To: �ڼ���
> Cc: wayland-devel@lists.freedesktop.org
> Subject: Re: [PATCH] Extending wayland protocol for helping a wayland client 
> to identify the event source of device (pointer/keyboard)
> 
> On Fri, Sep 25, 2015 at 04:14:25PM +0900,  ڼ    wrote:
> > Dear all,
> > 
> > Let me share a patch for extending wayland protocol for helping a 
> > wayland client to identify which events are coming from which physical 
> > keyboard/pointer device.
> > 
> > I  d like to discuss with you guys about this patch. : )
> > 
> > In this patch, I added   name   event both for wl_pointer and for 
> > wl_keyboard.
> > 
> > Under wayland protocol applied this patch, a wayland compositor will 
> > send the name event when a wayland client add a listener for 
> > wl_pointer or wl_keyboard.
> > 
> > Then, the client can store the name of the keyboard or pointer and 
> > will use it when it is required.
> > 
> >  
> > 
> > Usually in desktop environment, we don  t need to care the source 
> > device name of events.
> > 
> > In vehicle, mobile and TV environment, there will be many input 
> > devices and will be many special requirements for them.
> > 
> > For instance, in TV,   1   key in an usual keyboard will be used as a 
> > character   1   and will be sent to the focus surface/window.
> > 
> > By the way   1   key in remote control for TV will be used as a action 
> > key and will be sent to channel managing process which doesn  t have 
> > any focus surface/window.
> > 
> > In addition to this example, there can be many examples.
> > 
> > Thus, I share this patch. Any ideas on this ? : )
> 
> At least based on this example, I think this is fixing the wrong problem.
> knowing which device sends a key is fairly meaningless unless you have direct 
> access to the devices anyway (which you probably don't, at least not in the 
> default setups). And there are plenty of devices that have meaningless names 
> made from the pid/vid hex codes or even worse - "USB Keyboard".
> 
> the source of your problem is IMO that you're treating the remote control 
> like a keyboard when it isn't one. This is what we've been trying to solve 
> with the buttonset interface in libinput (still WIP and needs a wayland 
> protocol extension). Those devices are merely sets of buttons and require 
> their own focus control and behaviour, separate to (and more domain-specific
> than) keyboards. But it moves the issue into its own separate corner where it 
> can be handled correctly, rather than papering over the issues.
> 
> Cheers,
>    Peter
> 
> > 
> > ==================================================================
> > 
> > From ceeb8e2a10dce59a3fda9aca113b64ea97a85746 Mon Sep 17 00:00:00 2001
> > 
> > From: Sung-Jin Park <sj76.p...@samsung.com>
> > 
> > Date: Fri, 25 Sep 2015 14:01:57 +0900
> > 
> > Subject: [PATCH] Add name event for wl_pointer and wl_keyboard in 
> > wayland
> > 
> > protocol
> > 
> >  
> > 
> > ---
> > 
> > protocol/wayland.xml | 38 ++++++++++++++++++++++++++++++++++++--
> > 
> > 1 file changed, 36 insertions(+), 2 deletions(-)
> > 
> >  
> > 
> > diff --git a/protocol/wayland.xml b/protocol/wayland.xml
> > 
> > index 42c9309..7e98720 100644
> > 
> > --- a/protocol/wayland.xml
> > 
> > +++ b/protocol/wayland.xml
> > 
> > @@ -1402,7 +1402,7 @@
> > 
> >  
> > 
> >    </interface>
> > 
> >  
> > 
> > -  <interface name="wl_pointer" version="3">
> > 
> > +  <interface name="wl_pointer" version="4">
> > 
> >      <description summary="pointer input device">
> > 
> >        The wl_pointer interface represents one or more input devices,
> > 
> >        such as mice, which control the pointer location and 
> > pointer_focus
> > 
> > @@ -1569,9 +1569,26 @@
> > 
> >        </description>
> > 
> >      </request>
> > 
> >  
> > 
> > +    <!-- Version 4 additions -->
> > 
> > +
> > 
> > +    <event name="name">
> > 
> > +      <description summary="unique identifier for each pointer">
> > 
> > +        This can be used by the client to help identify which pointer
> > events
> > 
> > +        come from which physical pointer device.
> > 
> > +
> > 
> > +        In some cases, a specific client application can acts in 
> > + different
> > ways
> > 
> > +        when it gets pointer events from different pointer devices.
> > 
> > +        For instance, a series of motion events coming from a mouse
> > 
> > +        will be used as a cursor mover while the other series of 
> > + motion
> > events coming
> > 
> > +        from a pointer device which has a special wheel will be used 
> > + as a
> > scroller
> > 
> > +        of list of items.
> > 
> > +      </description>
> > 
> > +      <arg name="name" type="string"/>
> > 
> > +    </event>
> > 
> > +
> > 
> >    </interface>
> > 
> >  
> > 
> > -  <interface name="wl_keyboard" version="4">
> > 
> > +  <interface name="wl_keyboard" version="5">
> > 
> >      <description summary="keyboard input device">
> > 
> >        The wl_keyboard interface represents one or more keyboards
> > 
> >        associated with a seat.
> > 
> > @@ -1683,6 +1700,23 @@
> > 
> >        <arg name="delay" type="int"
> > 
> >             summary="delay in milliseconds since key down until 
> > repeating starts"/>
> > 
> >      </event>
> > 
> > +
> > 
> > +    <!-- Version 5 additions -->
> > 
> > +
> > 
> > +    <event name="name">
> > 
> > +      <description summary="unique identifier for each keyboard">
> > 
> > +        This can be used by the client to help identify which key 
> > + events
> > 
> > +        come from which physical keyboard device.
> > 
> > +
> > 
> > +        In some cases, a specific client application can acts in 
> > + different
> > ways
> > 
> > +        when it gets an identical key from different keyboard devices.
> > 
> > +        For instance, in TV like environment, '1' key coming from a
> > keyboard
> > 
> > +        will be used as a character. Meanwhile '1' key coming from a 
> > + remote
> > 
> > +        control key device will be used as a channel switching key.
> > 
> > +      </description>
> > 
> > +      <arg name="name" type="string"/>
> > 
> > +    </event>
> > 
> > +
> > 
> >    </interface>
> > 
> >  
> > 
> >    <interface name="wl_touch" version="3">
> > 
> > --
> > 
> > 1.9.1
> > 
> >  
> > 
> >  
> > 
> 
> 
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 
> 
> 
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to