[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XKB group toggle



 
> Вопрос к знатокам XKB - можно ли сделать переключение групп xkb при помощи, 
> к примеру, ctrl, но так, чтобы он сохранил свою обычную функциональность?
> 
> Т.е. ctrl press, ctrl release - переключает группу, а
> ctrl press, some_other_key press/release, ctrl release - не переключает.

  Нельзя.

> Интересует решение средствами XKB, или же ссылки на источник информации о
> том, почему этого сделать нельзя

  Интересный вопрос. Хотел бы я посмотреть на документацию, где дается
исчерпывающий список чего _нельзя_ сделать. :-)

  Могу сослаться на xc/doc/XKB/XKBlib .
  Дело в том, что нигде в XKB нет средств, чтобы явно указать, что ...
если между key_press и key_release что-то еще нажималось, то изменить
действие клавиши.
  То есть, переключалку из Control сделать можно не потеряв при этом
ее действия как Control, но она будет переключать группы всегда,
независимо от того - нажималось ли что-то между press/release.

  Самое забавное, что сам XKB это отслеживает (например, у SetGroup есть
флажок - "сбросить" группу в 0, который действует по разному в зависимости
от того, нажималось ли что-то между press/release), но не дает этим
воспользоваться по нашему желанию.

  Кстати, если хотите - можете покопаться в исходниках XKB (серверной части).
:-)
Возможно там есть какие-нибудь недокументированные "фичи", которые позволяют
сделать что-нибудь более полезное, чем просто "сброс" группы в исходное
состояние.

-- 
 Ivan U. Pascal         |   e-mail: pascal@tsu.ru
   Administrator of     |   Tomsk State University
     University Network |       Tomsk, Russia