Re: [PATCH] kbd: (#7063) make CapsLock work as expected even for non-ASCII

From: Samuel Thibault
Date: Mon Nov 16 2009 - 17:57:05 EST


Samuel Thibault, le Mon 16 Nov 2009 23:27:38 +0100, a Ãcrit :
> > My keymap contains
> >
> > keycode 44 = +z
> > shift keycode 44 = +Z
> > altgr keycode 44 = U+044F # CYRILLIC SMALL LETTER YA
> > altgr shift keycode 44 = U+042F # CYRILLIC CAPITAL LETTER YA
>
> And U+044F / U+042F is not KT_LETTER.
>
> Yes, there's no way you can express a unicode character in KT_LETTER.
> Limited interface, but that's not a reason to break other interfaces.

One way to go would be to decrete that keysyms between 0xD800 and 0xE000
(unused anyway) are "KT_LETTER" versions of the unicode 0x0000 - 0x0800.
That however covers only part of Unicode and doesn't solve the case of
keyboards where the upper case of a letter is not simply at the shifted
position.

The real correct solution is really to have kbd use modifiers just like
console-setup and provide a way for them to configure which leds should
be lit when some modifier is locked. That way building a keymap becomes
just orthogonal, no need to upload a table of lower/upper pairs (which
depend on the locale see for instance i/I vs i/Ä).

Samuel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/