kbd

Довольно много дистрибутивов Linux устанавливают kbd как обязательную часть системы. Сам пакет доступен по адресу kbd.

Пакет kbd содержит утилиты управления клавиатурой, кроме этого, с ним поставляется широкий выбор шрифтов и раскладок.

Установка кириллицы с помощью kbd обычно состоит из:

  1. Загрузки соответствующей раскладки клавиатуры с помощью программы loadkeys. Практически в каждом дистрибутиве можно установить раскладку клавиатуры, которую система загружает по умолчанию во время загрузки, с помощью соответствующей программы настройки (например, для RedHat — это /usr/sbin/kbdconfig). Вы также можете просто запустить loadkeys из вашего ˜/.profile или сделать это руками.

  2. Настройки экранного шрифта. Это делается с помощью программы setfont. Файлы шрифтов находятся в /usr/lib/kbd/consolefonts.

Если вы являетесь приверженцем программ, работающих в текстовом режиме и использующих достоинства псевдографики PC (таких как Midnight Commander), то вы можете предпочесть использовать шрифты с CP866 кодировкой и консольной раскладкой (console character map). Это означает, что ваша консоль отображает CP866 шрифты, но все кириллические символы, соответствующие KOI8-R кодировки, соответственным образом отображаются в CP866 и поэтому выглядят правильно. Преимущество этого метода заключается в том, что он позволяет использовать псевдографические символы кодировки CP866.

Ниже перечислены команды, которые позволяют достичь этого эффекта.

loadkeys /usr/lib/kbd/keytables/ru.map
setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
mapscrn /usr/lib/kbd/consoletrans/koi2alt
# ниже идёт магическая последовательность
echo -ne "\033(K"

При кириллизации всех консолей при загрузке системы вместо строчки

echo -ne "\033(K"

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

for i in 1 2 3 4 5 6 7; do echo -ne "\033(K" > /dev/tty$i; done

Магическая последовательность необходима для перекодировки вывода символов на экран, если вы используете CP866 шрифты. Она работает, и этого достаточно для спокойной жизни. Однако, если вам любопытно, то посмотрите документацию к пакету kbd.