Настройка и работа в Linux
adb5321d

Русификация клавиатуры


Первая строчка - "keymap=ru.koi8-r" служит аргументом для утилиты kbdcontrol, которая при старте системы загрузит в syscons "раскладку клавиатуры" ru.koi8-r.
  Это раскладка с "альтернативной клавиатурой", в которой "буквенные" клавиши генерируют коды русских букв в соответствии с кодировкой koi8-r.
  Естественно, в этой раскладке предусмотрен модификатор для переключения между основной и "альтернативной" клавиатурами. Он "подвешивается" на клавишу [CapsLock]. Если вам это не нравится, вы можете подправить сам файл "раскладки клавиатуры" (смотри пример Переключатель "альтернативной клавиатуры" (Рус/Лат).).

Кстати, если пересобрать ядро с "option RUKEYMAP", то эта раскладка будет "встроена" в syscons "по умолчанию". В этом случае, ее можно не загружать при старте системы.

А вот следующая строчка

keychange="61 ^[[K"

имеет к русификации косвенное отношение.

Дело в том, что загружая новые шрифты, мы меняем свойства терминала. По крайней мере, символы псевдографики перемещаются другой диапазон кодов. Следовательно, описание терминала cons25 в termcap уже не будет полностью соответствовать реальным свойствам syscons. Поэтому, для русифицированного syscons в том же termcap предусмотрено другое описание и, соответственно, другой тип терминала - cons25r. Именно поэтому, те же инструкции по русификации рекомендуют подправить файл /etc/ttys (исправить все cons25 на cons25r) чтобы на каждом виртуальном терминале при старте очередной сессии переменная окружения TERM

(которая и сообщает программам тип терминала) по умолчанию получала значение cons25r.

Но описание терминала cons25r отличается от cons25 не только символами псевдографики. Согласно этому описанию, клавиша fkey61 (кнопка [Delete]) должна при нажатии выдавать последовательность кодов "Esc [ K", а не код 177, как это делает syscons (и как указано в описании терминала cons25).

Поэтому, нам рекомендуется "подрегулировать" сам syscons, чтобы его поведение соответствовало описанию в termcap. (Почему нельзя исправить termcap и оставить syscons в покое, я не знаю).

Итак, эта строчка служит только для "подгонки" syscons к его новому описанию в termcap. Она представляет из себя аргумент для программы kbdcontrol, которая заменит для клавиши fkey61 ([Delete]) выдаваемый код.



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