Опубликован: 24.07.2006 | Доступ: свободный | Студентов: 8864 / 1199 | Оценка: 3.95 / 3.75 | Длительность: 41:47:00
ISBN: 978-5-94157-183-3
Лекция 10:

Подключение и настройка аппаратных устройств

Несколько практических рекомендаций по настройке модуля 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"
Options  "XkbCompat"           "complete"
Options  "XkbSymbols"          "en_US(pc101)+ru+group(alt_shift_toggle)"
Options  "XkbGeometry"         "pc(pc101)"

Если вам хочется задать дополнительные изменения "поведения" управляющих клавиш (то, что в третьем методе задается XkbOptions ), то подсмотрите подходящую "добавку" в rules/xfree86.lst и "приплюсуйте" ее в строчку XkbSymbols. Например,

XkbSymbols "en_US(pc101)+ru+group(shift_toggle)+ctrl(ctrl_ac)"

На этом мы ограничим описание методов настройки клавиатуры, а точнее - настройки модуля XKB. Если вы хотите разобраться с этим детальнее, то обратитесь к исходному материалу И. Паскаля http://www.mgul.ac.ru/~t-alex/Linux/X-Keyboard/index.htm.

Владислав Гермак
Владислав Гермак

Приглашения оболочки

Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ".

"\s-\v\$ ". -значиние /v замените /u