[sisyphus] XOrg: Получение символа по коду клавиши в соответствии с выбранной раскладкой (языком)

Vitaly Lipatov lav на altlinux.ru
Ср Авг 1 01:01:23 MSK 2012


Roman Savochenko писал 30.07.2012 23:42:
> 30.07.2012 17:18, Roman Savochenko пишет:
>
>> Начинаю разбираться с kvkbd и выясняю, что событие на перерисовку 
>> при
>> переключении от kxkbd приходит однако связка функций 
>> XKeycodeToKeysym()
>> -> keysym2ucs() всегда возвращает символы в Latin1.
> На самом деле используется умолчательный язык раскладки, а 
> переключение
> реально происходит только установкой "setxkbmap -model pc104 -layout 
> ru"
> в kxkbd для каждой локали причём нельзя включать латинскую группу.
Больше всего в этой истории с Keysym мне не нравилось, что у Иксов есть 
своя локаль, которая выставляется
из внешней локали, и в соответствии с которой транслируются клавиши в 
символы.
Если по простому — вводить можно только символы, подходящие под текущую 
локаль.
В связи с чем в чисто иксовых приложениях ввести что-то неподходящее 
нельзя, а в остальных (
ну большей частью это вынесено в библиотеки типа gtk/Qt) таскается 
самостоятельная
функция трансляции, не обращающая внимания на локаль.

Ну а то, что «переключением раскладки» в Иксах мы всегда переключаем на 
самом деле только группу, это край.
При том, что о нормальном переключении именно раскладок (с индикацией) 
никто и не заботится.

-- 
С уважением,
Виталий Липатов,
Etersoft


Подробная информация о списке рассылки Sisyphus