|
| ||||||||||||
| ||||||||||||
4. X Window
Подобно консольному режиму, X Window также требует некоторой настройки. Настройка включает в себя настройку ввода и установку шрифтов для X Window. Данные действия обсуждаются ниже. Для специфической информации, касающейся вашего дистрибутива, вам следует обратиться в раздел Кириллизация дистрибутивов.
4.1 Установка шрифтов для X Window
Прежде всего, вы должны достать шрифты, содержащие изображения
кириллических символов в соответствующих местах. Следует отметить,
что все современные дистрибутивы имеют KOI8-R шрифты, более-менее
пригодные для использования, так что
если xlsfonts не показывает их, то они просто не установлены или не
включены в
X Window включила набор KOI8-R шрифтов, разработанных Cronyx, еще в конце 1995 года. Эти шрифты являются также частью XFree86. Некоторые дистрибутивы (как правило, очень старые) могут не включать кириллические шрифты для X Window -- в этом случае их придется устанавливать самим. Подробнее о шрифтах для X-window и о том, где их можно найти, смотрите в разделе Шрифты для X-window. Более современную коллекцию шрифтов для X windows можно взять у Дмитрия Болховитянова по адресу пакет CYR_RFX. Поэтому вам следует проверить, установлены ли эти шрифты в вашей системе. Спросите системного администратора, или, если вы сами являетесь администратором, проверьте вашу систему сами, а именно:
Если вы не нашли таких шрифтов в вашей системе, то вы должны установить их сами:
Чтобы заставить X клиента использовать шрифты кириллицы, вы
должны установить соответствующий X ресурс. Например, я делаю
кириллический шрифт заданным по умолчанию в моем
*font: 6x13 Так как мои шрифты кириллицы идут первыми в списке поиска шрифтов (смотри
вывод программы ' Вот простые примеры. Если вы хотите научить соответствующий X
клиент пользоваться кириллическим шрифтом, то вы должны узнать
тип ресурса, который вам надо изменить (это можно сделать,
используя
$ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*' -- запустит xterm с несколько уродливым шрифтом;
$ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*' -- установит Cyrillic Times шрифт для кнопки
4.2 Использование шрифтов TrueType
У технологии TrueType, взятой на вооружение операционными системами серии Windows, нет многих недостатков, которые присутствуют при работе со шрифтами стандартным образом у X. Кроме того, существует множество кириллических TrueType шрифтов. Подробнее о том, где их можно найти, можно посмотреть в разделе Шрифты TrueType.
К счастью, эти шрифты можно использовать и в X Window. Существует TrueType сервер шрифтов XFSFT для X. Поддержка TrueType встроена во все современные дистрибутивы XFree86. Коммерческие X сервера уже довольно давно включили поддержку TrueType в свои дистрибутивы (Accelerated X, Metro X). Установочная процедура сервера шрифтов довольно проста: делайте то, что сказано в документации. Далее приводится пример того, как можно установить TrueType шрифты. О том, как подсунуть их X Window -- смотрите раздел Установка шрифтов для X Window. Для того, чтобы стандартные шрифты отображались в нужной
нам кодировке -- в данном случае для примера взята кодировка cp1251, --
в каталоге, где лежат TrueType шрифты, необходимо
создать два одинаковых файла,
12 timesi.ttf -monotype-Times New Roman-medium-i-normal--0-0-0-0-p-0-microsoft-cp1251 timesbi.ttf -monotype-Times New Roman-bold-i-normal--0-0-0-0-p-0-microsoft-cp1251 timesbd.ttf -monotype-Times New Roman-bold-r-normal--0-0-0-0-p-0-microsoft-cp1251 times.ttf -monotype-Times New Roman-medium-r-normal--0-0-0-0-p-0-microsoft-cp1251 couri.ttf -monotype-Courier New-medium-i-normal--0-0-0-0-m-0-microsoft-cp1251 courbi.ttf -monotype-Courier New-bold-i-normal--0-0-0-0-m-0-microsoft-cp1251 courbd.ttf -monotype-Courier New-bold-r-normal--0-0-0-0-m-0-microsoft-cp1251 cour.ttf -monotype-Courier New-medium-r-normal--0-0-0-0-m-0-microsoft-cp1251 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-microsoft-cp1251 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-microsoft-cp1251 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-microsoft-cp1251 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-microsoft-cp1251 Кроме этого, сюда же необходимо положить файл
1 microsoft-cp1251 /usr/X11R6/lib/X11/fonts/encodings/microsoft-cp1251.enc.gz Если вам нужны эти шрифты в кодировке KOI8-R, то вместо
Следует отметить одну вещь, имеющую отношение к кириллической настройке -- вам следует использовать опцию перекодировки:
xfstt ... --encoding koi8-r,windows-1251,iso8859-1 После этого новые шрифты будут доступны для X Window -- этот факт вы
можете проверить, запустив
4.3 Ввод с клавиатуры
В последних выпусках X (X11R61 и выше) имеются два "стандартных" способа ввода с клавиатуры: родной способ, работающий через утилиту xmodmap (см. раздел xmodmap) (сейчас это способ стремительно устаревает, хотя является надежным и хорошо изученным), и новый -- Xkb или X KeyBoard (раздел Xkb).
Настройка Xkb
Полную и исчерпывающую (даже слишком исчерпывающую) документацию по настройке Xkb можно найти у Ивана Паскаля.
Немного теории
При старте X-сервера, модуль XKB зачитывает все необходимые данные из текстовых файлов, которые образуют "базу данных" настроек XKB. Строго говоря, большинство из этих файлов сам модуль XKB не читает. Он вызывает программу xkbcomp, которая переводит содержимое этих файлов в двоичный формат, понятный непосредственно модулю XKB. Но для настройки это не так уж важно, поскольку вызов xkbcomp происходит автоматически, незаметно для пользователя. База данных, необходимых XKB, состоит из 5 компонентов:
Все эти компоненты разложены по одноименным директориям в
директории Весь набор компонентов, необходимых для настройки XKB, описывается в файле конфигурации X-сервера в секции Keyboard.
Настройка
Чтобы настроить XKB, в файле конфигурации X-сервера надо задать параметры XkbRules, XkbModel, XkbLayout и, если вам нужно что-то не совсем стандартное -- XkbVariant и XkbOptions. Например,
XkbRules "xfree86" XkbModel "pc104" XkbLayout "ru" XkbVariant "winkeys" XkbOptions "grp:shift_toggle" означает, что XKB должен в соответствии с правилами, описанными в
файле
Несколько практических рекомендаций.
Небольшое отступление -- "о клавише-переключателе рус/лат". Другие варианты смены кодировки:
Когда был написан первый вариант этих рекомендаций, сама раскладка "русской" клавиатуры (symbols/ru) включала в себя и "переключатель групп" рус/лат, "подвешенный" на клавишу CapsLock. С одной стороны, это было удобно -- в простейшем случае достаточно было выбрать "русскую раскладку", и вы автоматически получали и клавишу для переключения "на русский". Но, с другой стороны, это было неудобно для тех, кто предпочитает в качестве переключателя рус/лат другую клавишу (или комбинацию клавиш). Конечно, выбрать другой переключатель не составляло труда, но при этом оставался и переключатель на CapsLock, что многим не нравилось. Для того, чтобы убрать его, надо было "залезть" в соответствующий файл и вручную подправлять соответствующую раскладку.
В конце концов (начиная с версии 3.3.4) сами разработчики XFree убрали этот "переключатель" из "русской раскладки". Но в связи с этим появились и некоторые проблемы -- теперь клавишу-переключатель надо явно "заказывать" при конфигурировании XKB. Самый простой способ настройки -- использовать программу для автоматической настройки X-window. В XFree86 такая программа называется XF86Setup. При этом "по умолчанию" используются "правила" (XkbRules) -- xfree86. Вам нужно будет только выбрать "модель" (XkbModel), "схему" (XkbLayout) и "способ переключения групп" (переключатель "РУС/ЛАТ"). Кроме того, при желании вы можете изменить "положение клавиши Ctrl". Естественно, в конфигурации это будет выглядеть как соответствующие строчки XkbOptions. Итак. Запустите программу При выходе из программы она запишет соответствующие строчки в файл конфигурации XFree в секции Keyboard. Для смены кодировки можно воспользоваться любой из многочисленных программ переключения кодовых страниц через xkb -- например, я пользуюсь программой xxkb Ивана Паскаля. Offtopic: Если в файле
indicator "Group2" {
на
indicator "Scroll Lock" {
то в ответ на переключение регистра будет загораться лампочка
xmodmap
Описанное ниже относится к относительно старым версиям X-Window (кто бы сказал, к каким -- заведомо к версиям, меньшим 3.3.3), в которых способ Xkb (раздел Xkb) не работает. В случае русификации через xmodmap первое, что вы должны сделать, -- это отключить Xkb! Чтобы отключить поддержку Xkb, в
файле
XkbDisable Программа Я настоятельно советую вам самостоятельно не разбираться с
4.4 Нерусская кириллица для X Window
Все описанное приложимо не только для русского языка. Надо изменить только клавиатурные раскладки, ну и шрифты, естественно, будут иметь другую кодировку. Возможно, найденные вами шрифты окажутся в отличной от нужной вам кодировки. Для перекодировки BDF-шрифтов можно использовать программу trbdf из пакета trscripts. Эта программа поддерживает кодовые страницы ibm855, ibm866, iso-8859-5, koi8-c, koi8-r, koi8-u, mac-cyrillic, mik, unicode и ecma-cyrillic. Символы, отсутствующие в исходной кодировке, аппроксимируются, так что ее можно использовать, например, для генерации KOI8-U шрифтов из KOI8-R. Если вам нужна поддержка cp1251, то вы столкнетесь с тем, что пока официально XFree не поддерживает эту кодировку. Имеются три решения:
Если для кириллизации клавиатуры используете метод через утилиту
key <AD01> { [ q, Q ],
[ Cyrillic_shorti, Cyrillic_SHORTI ] };
нужно использовать
key <AD01> { [ q, Q ],
[ 0xe9, 0xc9 ] };
Замечание. Только версии XFree после 4.0.0 поддерживают KOI8-U. Если у вас отсутствует поддержка KOI8-U, а вам нужна именно эта кодировка, то вы можете воспользоваться всем вышеописанным про cp1251.
Вперед Назад Содержание |
|
CITForum © 1997–2025