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

Re: [Re: Re: Re: _ _____ __ __ _____, ___ Xkb.]



> > Теоретически, когда юникод будет все рулить, достаточно 
> > будет
> > выставить нужную utf8 локаль, имея при этом сортировку по 
> > буквам всех
> > поддерживаемых алфавитов, возможность помешать русский 
> > с немецким,
> > и.т.д.
> 
> С хmodmap будет то же самое, но количество раскладок клавиатуры
> ограничено только фантазией пользователя.

  Вот! Правильная мысль.
Хоть это можно теперь не объяснять - что "кирилические" символы можно
(и нужно) использовать не только в xkb но и без оного.

  Только одна маленькая поправка.
В xmodmap количество раскладок еще сильнее ограничено, чем в xkb.
В xkb четыре группы, причем в самой группе может быть несколько алфавитов.
А в xmodmap только два алфавита (если в них нужны и большие и маленькие буквы).

  А "ограничено только фантазией пользователя" будет только при использовании
xruskb. А xruskb - это "надстройка", причем достаточно серьезная.
Он даже предпринимает отдельные меры, чтобы обойти баги Xlib (которые
на самом деле правятся элементарно :-).
(Кстати, все в курсе, что в последних версиях xrus запоминает раскладку
отдельно для каждого окна? В общем-то метод тот же, что и в xxkb. Только
я все-таки на год раньше догадался :-)

  Ну так вот и пример к вопросу - "зачем нужен xkb".
Кто-то, неудовлетворенный возможностями xmodmap, написал "надстройку" в виде
xruskb. А кто-то другой засунул нечто подобное в сам Xserver.
  Ну а что лучше - отдельная программка с кучей файлов в привычном формате
xmodmap или xkb со своим форматом - это скорее дело вкуса.

> 3. Корректные кириллические KeySym.
> 
> Вот их-то я и пытаюсь сравнить с Xkb,

  Не надо их сравнивать. Можно "старые" koi8 засунуть в xkb.
А можно - "новые" cyrillic в xmodmap.
  Работа приложений в locale-зованой среде будет зависеть именно от keysym'ов,
а не от того, какими "надстройками/пристройками" они грузятся в сервер.

> > Ясное дело, что мертвые клавиши работают вовсю. Можно 
>                   ^^^^^^^^^^^^^^^
> Вот наконец прозвучало что-то что похоже на преимущество Xkb перед
> Xmodmap. Насколько я понимаю, средствами xmodmap не сделаешь мертвые
> клавиши. Или я опять не прав, также как в случае с keysym?

  Угу. Не прав.
Сервер в любом случае отдает только "сканкоды" и набор модификаторов.
А переводом в символы занимается либо Xlib, либо само приложение.
"Мертвые клавиши" делаются либо через Compose, либо самим приложением.

> А, значит даже в Xkb мертвые клавиши не отрабатываются на уровне
> X-сервера?
  Они _нигде_ не отрабатываются "на уровне сервера".

  Другое дело, что xkb - не только модуль сервера, но и кусок в xlib.
Просто потому, что формат раскладки не только на уровне текстовых конфигов,
но и "внутри" сильно отличается от core protocol'ных.

  Но обработкой dead keys занимается другая часть Xlib, которая работает
"поверх" как xkb, так и core protocol.

> А вообще есть еще такая система Plan9. Не слышал? 
> Там внутри везде UCS2, что гораздо лучший мех чем UTF8, поскольку всякие
> поиски, сортировки и прочие строковые операции с символами фиксированной
> длины работают быстрее.  
  Дык. Так и надо!
А что, есть такие программы/системы, что ищут/сортируют прямо в UTF8?

P.S. А что касается преемуществ xkb - они конечно есть, но практически
нигде никем не используются. И похоже, что и не нужны никому (ну или
большинству).
  (Я нашел несколько багов из-за которых некоторые "фичи" xkb просто не
работали "с рождения". За шесть-семь лет их никто не заметил.
Точнее - замечали, но в результате не стали искать, а просто
обошлись без этих "фич".)

  Единственный аргумент за xkb - вся нынешняя интернационализация в
xfree86 опирается на него. И настройка национальной клавиатуры во всяких
"конфигурялках" настраивает именно через xkb.
Никто уже не будет поставлять в дистрибутиве xfree xmodmap-раскладки
на все случаи жизни. А вот в xkb новые клавиатуры (чешские, "прибалтийские"
и т.п.) добавляются постоянно. Да и всякие хитрые комбинации для переключения
потихоньку пополняются.
  Но у нас в России как всегда свой путь - xruskb!!!

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