Keystroke flow in X.org

Timothy S. Nelson wayland at wayland.id.au
Thu Jun 11 23:58:26 PDT 2009


On Fri, 12 Jun 2009, Peter Hutterer wrote:

> On Fri, Jun 12, 2009 at 02:36:44PM +1000, Timothy S. Nelson wrote:
>>  	Here's a rather mundane article with a good diagram that I just wrote.
>> It should probably be linked to from http://www.x.org/wiki/XKB but since I
>> don' tappear to have access to do that, I'm posting the link on the mailing
>> list instead.
>>
>> http://computerstuff.jdarx.info/content/keystroke-flow-xorg
>>
>>  	Also, if people with some clues about xkb could review it, that would
>> be great.
>
> First - I appreciate that you wrote up some documentation and that you're
> putting it online. However, in this case I'm really sorry to say this is
> seriously wrong (and also a bit confusing).

 	Yay clueful people!  :).  I'm reordering your post so that my replies 
make sense.

> Those are just the points I can find in a quick 3 minute read. Please take
> this offline, I shudder at the thought of the collatoral damage of digg,
> reddit or slashdot picking this up. In years from now we'll still have to
> correct people that that's now how it works at all.

 	I agree that (after reading what you said) it needs correction. 
However, I hope to have a corrected version on-line after I've gotten some 
further clarification.

> - the files in xkb/* are only read by xkbcomp to compile the original
>  description, key events don't go that path at all

 	Ok, I think this can be incorporated into the diagram with no 
problems.

> Here's a few quick points:
> - drivers don't have anything to do with XKB anymore (in git anyway). XKB is
>  purely handled in the server now.
> - the client still receives keycodes andn not keysyms, the KC->KS
>  translation is done in the client after retreiving the keymap table (which
>  is usually done before the events arrive anyway).
> - scancodes == keycodes
> - what you (I think) refer to are symbolic names for some keys used in the
>  xkb description files. they have nothing to do with anything other than
>  help mapping during the key table creation


 	So, here's my impression of how it works based on what you've just 
said.

-	When a keystroke comes from the hardware, it gets picked up and
 	translated by the xmodmap map from a key/scan code into a symbol.
-	The translation table is generated from xkb/*.
-	The compose/locale stuff happens after the xmodmap translation table.

 	Am I at all right?

 	:)


---------------------------------------------------------------------
| Name: Tim Nelson                 | Because the Creator is,        |
| E-mail: wayland at wayland.id.au    | I am                           |
---------------------------------------------------------------------

----BEGIN GEEK CODE BLOCK----
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y-
-----END GEEK CODE BLOCK-----




More information about the xorg mailing list