Keystroke flow in X.org

Peter Hutterer peter.hutterer at who-t.net
Sun Jun 14 16:05:57 PDT 2009


On Sat, Jun 13, 2009 at 10:52:05AM +1000, Timothy S. Nelson wrote:
> On Fri, 12 Jun 2009, Peter Hutterer wrote:
>> if the physical keyboard changes, the server sends out a keymap notify event
>> and the cycle starts at 2 again. Hopefully, anyway, otherwise the amount of
>
> 	Is this if the keyboard device changes from eg. the first to the  
> second, or is it if you unplug your keyboard and plug in another?
>
> 	Anyway, I've revised the article and diagram; if you could have another 
> skim over, and let me know if there are any other obvious problems, that 
> would be great.
>
> 	Here's the link again:
>
> http://computerstuff.jdarx.info/content/keystroke-flow-xorg

I still think it's confusing at best. The diagram makes it appear as if the
files were actually used on each keystroke, which certainly isn't the case.
The keys symbols only matter if the keysym describes a "compat" (i.e.
action) or a modifier, otherwise the server just passes it on. If it's a
compat or modifier, the server actually processes something based on the
keystroke.

once the keycode hits the server it doesn't change anymore, so the scancode
to keycode translation (in evdev that's essentially 'kernel keycode + 8') is
done in the driver only.

the keycode to keysym translation is done in the client (with the
compat/modifier exception above).

all files in xkb/* are actually aimed for RMLVO configuration, not for
direct work with the Kcgst. see also 
http://who-t.blogspot.com/2008/09/rmlvo-keyboard-configuration.html

unfortunately, key processing is more complex than it possibly should be, so
any attempt to squash it into a small article will miss out vital bits
important for understanding the overall concept.

Cheers,
  Peter



More information about the xorg mailing list