Русификация для других кодировок
Рассмотренные рекомендации подразумевают, что вы будете использовать русскую кодировку koi8-r.
Как вы наверное знаете, существует по крайней мере еще две не менее популярные кодировки для русских букв cp866 и cp1251.
Можно ли заставить syscons (и дисплей, и клавиатуру) правильно работать с такими кодировками? Конечно, можно.
Как вы уже поняли, для дисплея необходимо загрузить соответствующие шрифты или screenmap, а для клавиатуры - таблицу "раскладки клавиатуры".
Кстати, для cp866 в системе уже есть все необходимое. То, что есть шрифты cp866 вы уже знаете (только надо убрать дополнительную перекодировку через screenmap), подходящая "раскладка клавиатуры" - ru.cp866, также имеется в /usr/share/syscons/keymaps.
А вот если вы хотите cp1251, то кое-что придется изготовить самостоятельно (или попросить у тех, кто уже сделал). Надо составить "раскладку клавиатуры" (назвать ее, например - ru.cp1251), а для дисплея проще всего делать не новые шрифты, а screenmap. Если у вас используются шрифты cp866, то надо просто изготовить табличку из 256 байт, которая будет транслировать коды из cp1251 в cp866 (пусть она называется - cp1251-cp866) и "подсунуть" ее syscons.
Если вы хотите во время работы переключаться между различными кодировками, надо сделать три командных файла и запускать их в нужный момент.
Например, если не трогать шрифты (пусть это будут шрифты для cp866) и "перенастройку" дисплея делать с помощью screenmap, то эти файлы могут выглядеть так:
- для cp866
kbdcontrol -l ru.cp866 vidcontrol -L
- для koi8-r
kbdcontrol -l ru.koi8-r vidcontrol -l koi8-r2cp866
- для cp1251
kbdcontrol -l ru.cp1251 vidcontrol -l cp1251-cp866
Напомню только, что и шрифты, и "таблица перекодировки", и "раскладка клавиатуры" действуют на все виртуальные терминалы. Поэтому установить для разных терминалов разные "типы русификации" не получится.
И, наконец, надо заметить, что русификация драйвера терминала, хотя и важная часть русификации всей системы, но не единственная.
Если вы хотите, чтобы все программы нормально понимали русский язык в кодировках отличных от koi8-r, вам придется еще менять переменную окружения LANG (а возможно и некоторые другие). А для cp1251 еще и изготовить "locale" (набор таблиц, описывающих особенности национального языка). Кроме того, некоторые программы (например, чтения/писания почты) возможно придется "отконфигурировать" индивидуально.
Но, для того, чтобы "по быстрому" просмотреть или подправить какой-нибудь документ в "нестандартной" кодировке, скорее всего "сойдет" и описанное решение.
Иван Паскаль pascal@tsu.ru