kleptos ([info]_kleptos_) wrote,
@ 2007-11-25 07:34:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Current music:Antonio Vivaldi - The Four Seasons - Concerto No.2 in G minor RV 315 1 Allegro non molto - Summer
Entry tags:x11, xlib

Что такое кнопки в иксах
Сначала сервер преобразует физические нажатия в keycode -

Далее сервер мапит по запросу клиента keycode в keysym - платформенно независимые и стандартизированные коды коды кнопок со смешными названиями вроде ISO_Next_Group, Cyrillic_shorti или просто Num_Lock.
При этом одному кикоду обычно соответствует несколько keysyms - какие именно именно чаще всего зависит от раскладки клавиатуры.
“Правильный” keysym выбирается в зависимости от состояния модификаторов (num, shift, etc). Этот процесс стандартизирован и описан в спецификации xproto.

И наконец клиент преобразует keysym в строку символа, если такая вообще есть.

Как-то примерно так. Написано в большей степени что-бы не забыть.




(Post a new comment)


[info]dnovikoff
2007-11-25 04:45 am UTC (link)
Ну да.
А потом при таком устройства возникают косяки, вроде того, что в софте Ctrl-C/Ctrl-V работает только в английской раскладке. Ну или Ctrl-T в Firefox. ИМХО, распознавание ввода в Windows сделано лучше =)

Равно как и рендеринг шрифтов, кстати говоря.

(Reply to this)(Thread)


[info]_kleptos_
2007-11-25 10:05 am UTC (link)
Перенос через буферы у меня почему-то прекрасно работает с любыми кодировками, что я делаю не так.
Хотя там тоже намучено в xlib'е всякого с GL и LR (в процессе понимания).

Вообще я вроде не совсем правильно написал. Состояние модификаторов нужно два раза, на keycode -> keysym и keysym -> char, проясни если можешь.

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…