Введение в POSIX'ивизм

       

Детали настройки клавиатуры


Настройка клавиатуры - благо и проклятие начинающего пользователя KDE. Благо - потому, что возможности этой среды по управлению клавиатурными раскладками существенно превосходят базовые функции, предоставляемые самой оконной системой Икс. Проклятием же это дело может показаться в том случае, если пользователь, впервые берущийся за KDE и выполнивший все формально предписанные по штату действия, вдруг с удивлением обнаруживает, что он не только не получил тех самых дополнительных возможностей, но и утратил способность переключаться с латиницы на кириллицу (или, что еще хуже, наоборот - с кириллицы на латиницу) вообще.

Тем не менее, все не так страшно, как может показаться на первый взгляд. И если ранее (например, в руководствах Алексея Новодворского к первым версиям Mandrake Russian Edition) резонные люди советовали вообще не трогать модуль настройки клавиатуры KDE, во избежание потери базовой русификации Иксов, то ныне им вполне можно пользоваться. Если это, конечно, нужно.

А нужно ли это народу? Как обычно, ответ будет вполне дипломатичный - кому нужно, а кому и нет. В обоснование чего вспомним, как достигается базовая русификация клавиатуры в Иксах и что она дает.

Как явствует из главы 16, сами по себе Иксы (то есть X-сервер) обеспечивают пользователю подключение кириллической раскладки, и не более того. Причем раскладки - одной единственной, примерно соответствующей фабрично русифицированным клавиатурам с DOS-маркировкой клавиш. Что не следует путать с DOS-кодировкой клавиатурного ввода - это название исторически закрепилось за некогда распространенными (а когда-то и единственно наличествующими) в продаже клавиатурами, у которых в кириллице самые востребованные знаки препинания (точка и запятая) располагались на верхнем регистре цифрового ряда клавиш - как на механических пишущих машинках отечественного (и соцлагерного) производства...

Далее, Иксы, позволяя подключить кириллическую раскладку, парадоксальным способом не обеспечивают возможности переключения на нее (или, напротив, с нее на латиницу).
Ибо эта самая кириллическая раскладка штатно такого переключателя не содержит.

Историческое отступление: некогда русская раскладка переключатель Lat/Рус имела, и привязан он был к клавише CapsLock. Как сказали бы в Одессе - и кому это мешало? Кому-то, видимо, мешало, потому что начиная, если память не изменяет, с версии XFree86 3.3.4, штатный переключатель из русской раскладки выкинули. То есть пользоваться ею по прямому назначению стало невозможным? - ведь трудно представить себе самого исконно-кондового патриота, не нуждающегося в латинице вообще.

Да, если бы не модуль расширения Иксов, именуемый Xkb Extensions (или просто Xkb). Его подключение (а при любом способе конфигурирования Иксов оно выполняется по умолчанию) обеспечивает такие дополнительные возможности, как:

  • использование варианта раскладки (в частности, варианта winkeys, соответствующего маркировке ныне продающихся фабрично русифицированных клавиатур);


  • выбор клавиши-переключателя (в отличие от Windows, выбор этот весьма обширен - допустимы фиксируемые модификаторы CapsLock и ScrollLock, почти любые сочетания клавиш Alt, Control и Shift (да еще с различением правых и левых), а также т.н. Win-клавиши (полный список можно посмотреть в файле /usr/X11R6/lib/X11/xkb/rules/xfree86.lst);


  • назначение индикатора альтернативной (в нашем случае - русской) раскладки, каковым может быть любой "огонек" на клавиатуре - CapsLock, NumLock или ScrollLock, вне зависимости от того, какая клавиша выступает переключателем;


  • возможность подключения третьей раскладки клавиатуры;


  • всякого рода переопределения клавиш-модификаторов, в том числе и Win-клавиш.


  • В итоге, казалось бы, непосредственно в Иксах можно получить все, что нужно для счастья русскому (пардон, русскоязычному) человеку. За двумя исключениями:

  • переключение раскладок клавиатуры в Иксах, в отличие от Windows, имеет силу для всех приложений сразу; что не всегда может быть удобно - например, при одновременной работе в командной строке (требующей латиницы) и текстовом редакторе с русскоязычным документом;




  • с помощью Xkb можно задействовать только три раскладки клавиатуры, и если по ходу дела в русско-латинский (или, что идентично, русско-английский) текст требуется вставлять еще и немецкие умляуты с французскими аксантами, а то и изобильную скандинавскую символику, их оказывается явно мало.


  • И вот тут-то и приходит на помощь интегрированный в KDE аналог Xkb, который, как нетрудно догадаться, носит имя kxkb. Так что если ни множество раскладок, ни привязка переключения клавиатуры к некоему приложению (или даже отдельному окну приложения) вам лично не нужны, дальше можете не читать, забыв об kxkb навсегда и ограничившись корректной настройкой Xkb.

    Если же хоть одна из описанных возможностей кажется вам необходимой или полезной - приступим к настройке kxkb. Только следует учесть - дело это придется доводить до победного конца. Потому что включение этого модуля автоматически аннулирует все настройки, заданные в конфигурационном файле Иксов, и некорректное использование kxkb может, как уже говорилось, лишить возможности ввода русских букв вообще.

    И еще: если необходимо использовать множество клавиатурных раскладок, дело не ограничится настройкой kxkb, а потребует еще и использования unicode-шрифтов и локали UTF-8. Что, впрочем, к теме настоящей заметки не относится.

    И последнее: все описанное ниже основано на личном опыте общения с последними версиями KDE - 3.3.1 и 3.3.2. В более ранних версиях все было чуть-чуть по другому, и не исключено, что и в следующих версиях ситуация будет меняться. Поэтому к моему тексту нужно относиться творчески...


    Содержание раздела