dinput2
Scott Ritchie
scott at open-vote.org
Fri May 21 10:01:53 CDT 2010
On 05/21/2010 06:16 AM, Paul "TBBle" Hampson wrote:
> (Resending, on-list. Thanks, Gmail, apologies to Scott >_<)
>
> On 21 May 2010 14:29, Scott Ritchie <scott at open-vote.org> wrote:
>> By the way, you're not the only one who wants this. At the Ubuntu
>> Developer Summit we talked about the need for ripping the keyboard code
>> out of X entirely (and instead having it sit somewhere in the plumbing
>> lair).
>
>> I'll admit I'm not too familiar with the details about why this is a
>> good idea, but I believe it had something to do with keyboard layout
>> issues for International users, especially in East Asia.
>
> Is there any particular documentation of this discussion or intention?
> I'm interested in the area, but I'm not clear on what's actually being
> discussed, change-wise.
>
We didn't create a wiki page yet, but here are some copy/pasted Gobby
notes taken during the session:
-----
Current Situation:
BIOS keyboard driver from boot to X
- kernel replaces that with input drivers (can remap etc)
- same drivers that X uses
- atkbd translates scancodes to keycodes, X translates to key sequences
- X starts up, uses /dev/input devices
- on console currently have no way of differentiating keyboard
current X implementations: XKB (European) and XIM (Asian) compete with
eachother
- If you have a key on your keyboard to switch between US mode and
"input mode" that can input other keys then we don't handle this well
- A keyboard layout other than US English will leave you screwed if
you're on an asian language
- X sees keycodes rather than scancodes here
- On X key swapping is done with the unique identifiers rather than
scan codes
- but the intermediate layer with unique key ids is not exposed
- input method engine does not see intermediate layer
- we need to know underlying layer as well
- Thai problem: keyboard with a key to switch between US English and
Thai layout
- We have no indicator for what layout you're in, so Thai users
tend to use only 0-9 for passwords because those characters are
consistant between these two layouts
- xkb doesn't support mapping one key to multiple unicode codepoints
(such as for keys that actually generate two unicode characters)
Solution: rip out the mess in X, put everything in IBUS instead.
- User Session IBus daemon running, X talks to it
- xkeyboardconfig would need to be merged into IBUS
- X would be happy to remove keyboard stuff so they can focus on Video
instead
- need someone to focus on the new bugs introduced by this change
- Long term we will probably always have a display server (kernel will
take video responsibility, remove VT layer)
- udev keyboard config magic should be moved out (into device tree or
uinput)
- talk to xkeyboardconfig upstream and may be willing to help maintain it
- Send Arne and Chris to X Conference and plead to the audience for
someone to do this
- Arne to gather help and get the facts right and prepare presentation
- Chris to help Arne
- Scott James Remnant to clarify how plumbing gets keycodes to X
-----
If you have any questions you can ask ArneGoetje on Freenode (or mail
him, here's his launchpad page: https://launchpad.net/~arnegoetje)
This is the kind of thing that should exist as a wiki page somewhere, so
feel free to get started on one. I hope that helps, I'm not too
knowledgeable on the subject myself.
Thanks,
Scott Ritchie
More information about the wine-devel
mailing list