сервера, надо задать параметры XkbRules, XkbModel, XkbLayout и, если вам нужно что-то не совсем стандартное - XkbVariant и XkbOptions.

Например,

Option  'XkbRules'        'xfree86'

Option  'XkbModel'        'pc104'

Option  'XkbLayout'       'ru'

Option  'XkbVariant'      ''

Option  'XkbOptions'      'ctrl:ctrl_ac'

Option 'XkbRules' 'xfree86'

означает, что модуль XKB должен в соответствии с правилами, описанными в файле ./rules/xfree86, выбрать настройки для клавиатуры типа 'pc104' (104 кнопки), русского алфавита (английский алфавит будет включен 'по умолчанию'), вариант - 'стандартный' (т. е., этот параметр можно было не писать) и, наконец, дополнительные опции для вашей 'раскладки клавиатуры' - 'ctrl:ctrl_ac'.

Что означают различные опции, а также какие 'модели' и 'схемы' определены в 'правилах' (и что они означают), можно посмотреть в файле xfree86.lst (или другом файле *.lst, если вы выбрали 'правила', отличные от xfree86), который находится в той же директории, что и файл 'правил', т. е. в подкаталоге rules.

Небольшое отступление о клавише - переключателе 'рус/лат'. В первых вариантах модуля XKB раскладка 'русской' клавиатуры включала в себя и 'переключатель групп' - рус/лат, 'подвешенный' на клавишу CapsLock. С одной стороны это было удобно: в простейшем случае достаточно было выбрать 'русскую раскладку' и вы автоматически получали и клавишу для переключения 'на русский'. Но, с другой стороны, это было неудобно для тех, кто предпочитает в качестве переключателя рус/лат другую клавишу (или комбинацию клавиш). Конечно, выбрать другой переключатель не составляло труда, но при этом оставался и переключатель на CapsLock, что многим не нравилось. Для того, чтобы убрать его, надо было 'залезть' в соответствующий файл и вручную подправлять соответствующую раскладку.

В конце концов (начиная с версии 3.3.4) сами разработчики Xfree86 убрали этот 'переключатель' из 'русской раскладки'. Но, в связи с этим появились и некоторые проблемы - теперь клавишу-переключатель надо явно 'заказывать' при конфигурировании XKB.

9.3.8. Несколько практических рекомендаций по настройке модуля XKB

Самый простой способ - использовать программу для автоматической настройки X-Window. В XFree86 версии 3 такая программа называется XF86Setup. Она использует третий метод задания конфигурации XKB. При этом 'по умолчанию' используются 'правила' (XkbRules) - xfree86. Вам нужно будет только выбрать 'модель' (XkbModel), 'схему' (XkbLayout) и 'способ переключения групп' (переключатель 'РУС/ЛАТ').

Кроме того, при желании вы можете изменить 'положение клавиши Ctrl'. Естественно, в конфигурации это будет выглядеть как соответствующие строчки XkbOptions. Итак, запустите программу XF86Setup, выберите раздел Keyboard. В этом разделе выберите из меню Model (тип клавиатуры) и Layout (язык). Не забудьте отметить в отдельных списках (в правой части) подходящий 'переключатель групп' и, если хотите - 'расположение Ctrl'. При выходе из программы она запишет соответствующие строчки в файл конфигурации Xfree86 в секции Keyboard.

А теперь рассмотрим то, как можно задать эти настройки путем прямого редактирования секции InputDevice (Keyboard) файла /etc/X11/XF86Config.

Прежде всего, надо сказать, что 'ключевыми словами' в этих настройках будут:

• xfree86 - название 'архитектуры' X-Window;

• pc101 (pc104, pc105 и т.п.) - тип клавиатуры (количество кнопок);

• ru - название 'раскладки клавиатуры' с русским алфавитом.

Проще всего сразу задать конфигурацию клавиатуры с помощью keymap. В файлах конфигурации есть набор 'полных keymap'ов' для архитектуры xfree86, отличающихся 'языком'. Все они лежат в файле xfree86, а название блока внутри файла отражает название 'языка' (точнее - алфавита) - xfree86(us), xfree86(fr), xfree86(ru) и т. д. Полный список keymap-файлов можно посмотреть в файле /usr/X11R6//lib/X11/xkb/keymap.dir.

Для 'русифицированной' клавиатуры вполне подойдет

Option 'XkbKeymap' 'xfree86(ru)'

К сожалению, после исключения CapsLock как переключателя рус/лат из русской раскладки (см. замечание в конце предыдущего раздела) получилось так, что 'полная keymap' для русского языка осталась вообще без какого-либо переключателя 'по умолчанию'. Но вы можете добавить его вручную. Для этого придется найти в файле /keymap/xfree86 блок 'ru'. И дописать в строчку xkb_symbols ссылку на описание соответствующего переключателя групп. Для CapsLock это будет - group(caps_toggle). То есть, строчка xkb_symbols будет выглядеть как

xkb_symbols {include 'en_US(pc105)+ru+group(caps_toggle)'};

Полный список возможных переключателей групп (т. е. возможных переключателей 'рус/лат') можно найти в файле /usr/X11R6//lib/X11/xkb/symbols/group (проведите в этом файле поиск по ключевому слову xkb_symbols).

Теперь рассмотрим случай, когда для задания конфигурации клавиатуры используется третий способ - через 'правила', 'модель', 'схему' и т. д. Как было сказано выше: название 'правил' (rules) соответствует 'архитектуре' (xfree86); 'модель' (model) соответствует типу клавиатуры (pc101, pc102 и т.п.); 'схема' (layout) отражает 'язык' (ru).

Поэтому, подходящая конфигурация будет выглядеть примерно так:

Option 'XkbRules' 'xfree86'

Option 'XkbModel' 'pc104'

Option 'XkbLayout' 'ru'

С помощью строки XkbOptions можно подобрать 'поведение' управляющих клавиш. Возможные значения XkbOptions и их смысл можно подсмотреть в файле /rules/xfree86.lst в той части, которая начинается строкой '! option'.

Не забудьте, что, как и в предыдущем случае, надо явно выбрать переключатель групп. Для CapsLock это будет

Option 'XkbOptions' 'grp:caps_toggle'

И, наконец, рассмотрим первый способ - описание отдельных компонентов настройки (keycodes, compat, types, symbols, geometry).

Если вы не знаете с чего начать, подсмотрите соответствующий набор в keymap. Или попробуйте 'вычислить' его через rules/model/layout. Чаще всего подойдут следующие значения:

• для keycodes выбрать файл xfree86;

• для types и compat подойдут файлы default ('по умолчанию') или complete ('полная');

• geometry, скорее всего, 'pc', а количество кнопок задается названием блока в файле pc - pc (pc101), pc(pc102), pc(pc104). Полный список 'геометрий' имеется в файле /usr/X11R6/lib/X11/xkb/geometry.dir.

А вот на symbols обратите особое внимание. Файл symbols/ru описывает только 'буквенные' клавиши. Если вы укажете только его, то у вас не будут работать все остальные кнопки (включая Enter, Shift/Ctrl/Alt, F1-F12 и т. д.). Поэтому symbols должен состоять по крайней мере из двух файлов - en_US (pc101) (в скобках - тип клавиатуры) и, собственно, ru. Полный список symbols - в файле /usr/X11R6/lib/X11/xkb/symbols.dir.

Сюда же надо добавить и описание подходящего 'переключателя рус/лат' (как уже говорилось, их перечень - в файле symbols/group).

Для первого метода список может выглядеть так

Options  'XkbKeycodes'        'xfree86'

Options  'XkbTypes'             'complete'

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

3

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату