Re: [gdm-list] GDM version used for GNOME 2.24?


I think Jon is in Portland right now for the Plumbers conference, so
I'll try to answer for him.

I believe Brian wrote some code to port the dwell listeners over to
the new GDM some time ago.  It's not completely finished, but it's
most of the way there.

Note there are two "gesture listeners", a "dwell" listener and a
"key/mousebutton" listener.  It is probably better to refer to them
as "gesture listeners" since "dwell" is just one type of gesture.

Yes, I did some work to port the old code to the new framework.  I
got it mostly working.  We could, of course, consider using that
code in GDM as a temporary solution until something better comes

On the other hand, Jon wants it to be done from gnome-settings-daemon
instead of from GDM. One of the big rationales for Jon's recent
desktop a11y work was so that a user can come up to a system in an
unknown state (logged in or logged out) and take a known set of
actions to make that system accessible to that user.

Doing the work in gnome-settings-daemon is a better choice.  This
would make the same "gestures" work in both GDM and the user's actual
GNOME session.  Having a common framework for starting AT programs
would be a big step forward.  I agree with Jon on this.

However, note that the "dwell" gesture mechanism will need to be
completely reworked.  The GDM "dwell" mechanism works by moving
the mouse in and out of the GDM login window.  This works reasonably
well when there is only one window on the screen which is always
displayed, as when GDM is running.  However, it probably is not a good
solution for the user's session where these assumptions are not true.

A different mechanism that instead relies on a mouse gesture
that relates to the position on the screen (such as moving the mouse
to a combination of corners on the screen), or wiggling the scroll
wheel in a certain way would probably make more sense for making
dwell work in both GDM and the GNOME session.

Since GNOME already has some keybinding support, it might make
sense to reuse that code rather than write a new plugin.   That might
be a bit of work, though, since AT-style gestures are a bit different
than your normal keybinding:

- AT key gestures are often things like "press a key (like Shift)
  five times in a certain timeout" or "press a key and hold it
  down for a certain long time".
- AT button gestures are often things like "hold the left mouse button
  down for 3 seconds, and then do this 3 times in a row in a
  certain timeout" or "hold the right mouse button down for 10 seconds".

The goal is that some users have trouble hitting certain key or mouse
button combinations, so there is often a desire to make the gestures
work in a way that instead of holding down multiple keys/buttons at the
same time, you instead hit a single key in a repeated fashion.

Obviously the existing keybinding support does not support these
types of gestures.  Not sure if it makes more sense to extend the
existing keybinding code or make a new g-s-d plugin.

Another possible issue is that the two existing gesture listeners use a
custom flat file format for configuring the gestures.  I have a
suspicion that Jon would likely also want this to be reworked to use
something more standard and/or modern.  At the very least, the
configuration files should probably be moved out of the /etc/gdm
directory and put somewhere else.

So to answer the question to the best of my ability (and Jon or Brian
would be better to answer), 1) there is some inprogress code that
Brian Cameron wrote 2) that code targeted GDM when it was written,
isn't slated for GDM now, and instead needs to get reworked to go into

I am not very familiar with g-s-d.  I would be happy to help port the
code, but I would need some help, someone to explain how to go about
making them g-s-d plugins.  Also, if we are going to go to the bother
of reworking the code, we probably need to rethink some of the issues
I discuss above.

The old GDM gesture code could be used for inspiration, of course, but
I don't think it is just an easy matter of porting the code.  As I say
above, the dwell listener would need to be reworked to be useful in the
user session.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]