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

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



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

  Есть не менее простые командочки setxkbmap и xkbcomp.
Только сразу же, чтобы не было недоразумений - действительно, setxkbmap
только дает команду серверу - какую раскладку и "серверной базы" выбрать
и загрузить (подобный метод используется в kkb).
В отличии от xmodmap она по соединению раскладку не закачивает.
  Но вот xkbcomp берет данные как-раз на клиентской стороне, переводит
конфиг в бинарную форму и "вкачивает" раскладку на сервер, то есть -
делает то же, что и xmodmap, но только в xkb протоколе.

  Ну и xmodmap можно использовать для "закачки" и в сервер с xkb.
Так что правильнее говорить - xkb vs. core protocol, а не xkb vs. xmodmap.

  Хотя, как я понял, вас больше всего интересует сравнение именно форматов
текстовых файлов - формат xmodmap vs. формат xkb. Так?

> > Он даже предпринимает отдельные меры, чтобы обойти баги Xlib (которые
> > на самом деле правятся элементарно :-).
> 
> Но, к сожалению правятся (и организационно - не так уж элементарно) только
> в одной конкретной реализации xlib - xfree-шной. 
> 
> А xruskb работает и с NCDWare и с Solaris и со всем остальным.
> Я ее только на MiX не пробовал.

  Ну да. Извиняюсь. Не подумал о других "иксах".
Вообще-то, xkb это не xfree'шное изобретение. Это часть X11R6.
Кто виноват, что ее развивает/правит только XFree.

  Но... Корректно ли с вашей строны использовать этот аргумент в ru.linux?
Или в Linuxe такой же зоопарк X-server'ов?

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

  Во! Вопрос очень интересный.
Пользоваться xkb можно без каких-либо надстроек.
И переключение раскладок подвесить на любую комбинацию клавиш и
индикатор вывести на любой LED на клавиатуре. Или сделать индикацию
на любой "вирутальный индикатор". Понятно, что сам сервер рисовать вам
этот виртуальный индикатор не будет. Но в дистрибутиве есть xkbled
(хотя и ублюдочная до невозможности).
  А вот в core protocol возможности сочинить "переключатель" более скромные.
А управления индикаторами вообще нет.

  А что касается xxkb - индикация там занимает пяток строчек
(ну еще стандартная "обвязка" - открыть канал, создать окошко,
"зарегистрировться" у WM и т.п.).
  Естественно, всем хочется вместе с индикатором еще и в него "мышой тыкать".
Понятно, что эту функциональность вам никакой xserver без "надстройки"
не предоставит.
  А все остальное - запоминание раскладки для каждого окна, рисование
кнопки на окне, игнорирование некоторых окон и т.п. - это должен бы делать
каждый WM (но не делает).
  Так что, xxkb - надстрока к WM, а не к xkb. Основные его "вкусности"
можно делать и поверх core protocol (что и подтверждает последний xrus).
  Еще раз повторю - держать кучу раскладок и переключаться разными
комбинациями клавиш, да еще и индицировать текущую раскладку _можно_
без xxkb. А вот в core protocol без xrus или запуска xmodmad из скриптов -
нельзя.

> >   Ну а что лучше - отдельная программка с кучей файлов в привычном формате
> > xmodmap или xkb со своим форматом - это скорее дело вкуса.
> 
>  Конечно первое! Потому что во-первых, это Unix, и в нем не принято вешать
> на одну программу слишком много функциональности, во вторых xruskb куда
> более переносима.

  Ну, как сказать. Не надо уж Unix way доводить до абсурда.
Может стоило бы и "рендеринг" шрифтов убрать из xserver'а, пусть приложение
(тулкит) рисует.

>  > > 3. Корректные кириллические KeySym.
> > > 
> > > Вот их-то я и пытаюсь сравнить с Xkb,
> > 
> >   Не надо их сравнивать.
> 
> Я неправильно выразился. Я хочу сравнить xmodmap с xkb, считая заведомо
> выполненым условие, что все программы локализованы корректно,
> а обмен между сервером и клиентом идет в корректных  keysym для данного
> алфавита.
  Угу. Еще раз извиняюсь. Я это написал "в пылу спора", а потом уже понял,
что в данном случае мы говорим об одном и том же.

> >   Единственный аргумент за xkb - вся нынешняя интернационализация в
> > xfree86 опирается на него. И настройка национальной клавиатуры во всяких
> 
> Это аргумент примерно той же силы, что аргумент за кодировку 1251 "90%
> народу ей пользуется". И возразить можно примерно то же самое.
> У 1251 есть объективные преимущества, типа наличия украинских/белорусских
> букв, а у xkb их похоже нет.

  Ну вот, так я и думал. :-)

> Она по-моему, уже выполнила свою историческую роль - заставила нас
> допинать практически все используемые приложения до корректной поддержки
> KeySym,  и теперь от нее можно отказаться, сэкономив место в памяти и на
> сервере, и на клиенте, и, насколько я понимаю, bandwidth между ними.

  Вот это аргумент прямо противоположный :-)))
Bandwidth как-раз больше при наличии xrus.
  Развивать эту тему сейчас не буду, но если хотите - могу подробнее.

> > "конфигурялках" настраивает именно через xkb.
> 
> Учитывая то, что лично я эти конфигурялки сношу сразу как только увижу,
> а XF86Config как правило копирую с соседней машины, то на это наплевать.

  Но, надеюсь вы не будете выступать (в ru.linux) с инициативой -
"все конфигурялки must die!". :-)
  (Виктор, я с большим интересом читаю ваши выступления в ru.linux,
со многим согласен. Поэтому, с большим уважением к Вам, скажу - _Вам_
xkb действительно не нужен! :-) Но зачем всех то звать в "светлое будущее
без xkb"? :-)

> А нам надо - в дистрибутиве xfree? В дистрибутиве Debian Linux xruskb
> поставляется, в портах FreeBSD, думаю - тоже.

  Ну вот про порты FreeBSD не надо.
Для того, чтобы оттуда что-то поставить, надо как минимум знать - что
оно там есть и где именно его искать.
(Я сам "живу под" FreeBSD, ставлю все что надо из портов, но и знаю, что
"навигация" по ним - не для новичков).
  Вот если бы при установке XFree сама писала - "а если вам надо навороченную
клавиатуру - найдите где-нибудь xruskb (в портах, rpm и т.п.) и enjoy",
вот тогда бы я снял свой аргумент.

> Интересная мысль: А что на самом деле используют греки, арабы и прочие?
  А не знаю я. Могу только сказать, что чехи (или это были словаки?),
например, "прротолкнули" недавно дурацкий патч в конфигурялки, который,
если выбираеш клавиатуру Чешскую или Словацкую, еще и автоматом настраивает
индикацию ScrollLock LED'ом, и переключалку какую-то свою.
  Это я к тому, что - похоже они вовсю пользуются.

> Что японцы и китайцы пользуют xim это очевидно.
Кстати, вот "японцы и китайцы" как-раз используют свои "самопальные"
xim-сервера, которые идут "надстройками" к "иксам", а вовсе не те "фишки",
что уже встроены в Xlib (кто бы решился их выкинуть наконец?).

> А то напрашиваются
> подозрения что "свой путь" это как раз xkb, только это не путь России,
> а путь XFree86, которая уже один раз пыталась поссориться с x.org (
> правда, за дело - из-за лицензионных ограничений).     

  Ну я уже сказал - xkb - часть X11R6 SI. Почему кроме XFree86 никто его
не использует - не знаю. Опять _у всех_ свой путь.

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