Seats support

Pekka Paalanen ppaalanen at gmail.com
Thu Apr 18 23:47:23 PDT 2013


On Thu, 18 Apr 2013 19:36:55 -0500
Jason Ekstrand <jason at jlekstrand.net> wrote:

> Singh,
> On Thu, Apr 18, 2013 at 12:35 PM, Singh, Satyeshwar <
> satyeshwar.singh at intel.com> wrote:
> 
> > Hi Jason,
> >
> > > As of right now, weston doesn't have a way (as far as I know) to
> > > split your devices into multiple seats.  Then again, I don't
> > > really see why you would want to unless you plan to have two
> > > people working on the same computer simultaneously (I guess
> > > that's a possibility).
> >
> > In a car, where the real estate is limited, there is only one
> > monitor but dual view (so that the driver sees one content and the
> > front seat passenger sees another). They both have their own
> > trackpads and this requires two input devices to be routed to two
> > different Wayland outputs (each view is a wl_output) and can
> > simultaneously control their own view.
> >
> 
> If this is the case (two different output, two different seats), then
> why not have two different compositors?  Perhaps you need some
> syncing between them?  Is there something else I'm missing here?
> 
> I don't know for sure, but It should be possible (perhaps with a
> little modification) to have two simultaneous weston sessions
> running.  I don't think that's supported yet, but it may not take
> much.

Indeed, maybe this comes from the confusion, that wl_seat is not a
seat.

wl_seat is a collection of input devices, and provides at most one
pointer, one keyboard, etc. to clients. This may be best thought via
foci: there is only one keyboard focus for a wl_seat. This is a just a
protocol abstraction.

A seat comprising of a display and a keyboard (in the classical setup),
like a literal "console seat" with a chair, table, monitor, keyboard
etc., is not a wl_seat. These physical seats are more like separate
compositor instances, since you usually have different users logged in,
and the desktop is not shared between them. In other words, they are
separate sessions.

So the car example would really be two (session) compositor instances,
not two wl_seats. And I think the evdev based backends of Weston are
using udev tags or something to pick and choose which input devices to
open, so for Weston you give a seat label, and then all input devices
with that label get opened. Input device labeling happens in udev.
I believe currently all input devices opened are added to one wl_seat,
but that's just a Weston detail.


Thanks,
pq

> > -----Original Message-----
> > From: wayland-devel-bounces+satyeshwar.singh=
> > intel.com at lists.freedesktop.org [mailto:
> > wayland-devel-bounces+satyeshwar.singh=intel.com at lists.freedesktop.org]
> > On Behalf Of Jason Ekstrand
> > Sent: Wednesday, April 17, 2013 1:49 PM
> > To: Andrew Voron
> > Cc: wayland-devel at lists.freedesktop.org
> > Subject: Re: Seats support
> >
> > Andrew,
> > The seat concept is meant for each seat to correspond to one human
> > interface to the desktop.  For example, say you have a fancy laptop
> > with a touchscreen as well as both a trackpad and a nub.  And let's
> > say that we further complicate the situation by plugging in an
> > external keyboard/mouse.  All of those devices would be one one
> > seat. The wl_pointer would be an agrigate from all three pointing
> > devices and the wl_keyboard would get key events from both
> > keyboards.  the wl_touch would just be the one touch screen in this
> > case.
> >
> > As of right now, weston doesn't have a way (as far as I know) to
> > split your devices into multiple seats.  Then again, I don't really
> > see why you would want to unless you plan to have two people
> > working on the same computer simultaneously (I guess that's a
> > possibility).
> >
> > The only back-end that currently provides multiple seats is
> > Hardening's RDP back-end that provides one seat for each connected
> > RDP client.
> >
> > I hope that helps,
> > --Jason Ekstrand
> >
> > On Wed, Apr 17, 2013 at 3:26 AM, Andrew Voron <voland62 at gmail.com>
> > wrote:
> > > Hello.
> > >
> > > I want to clarify a seats supporting by wayland(and weston). By
> > > "seats support" I mean an ability to define in weston.ini file
> > > some "seats" and imput(keyboard, mouse) and output (monitors)
> > > channels for each of that seats. If the answer is YES, can you
> > > point me any docs related to this stuff. If NO, could you
> > > explain, please, a "seat" metaphor of the
> > protocol,
> > > and how it maps in weston implementation (I saw the wl_seat
> > > struct is
> > goes
> > > through all the code for ex.)
> > >
> > > Tnx for advance.


More information about the wayland-devel mailing list