Тут-то до меня и дошло что, собственно говоря, многозадачность не обязательно связана с графическим интерфейсом, как мы привыкли в DOS/Windows/Windows95, а также, что виртуальные консоли ничем не хуже, а может быть и лучше, чем "окна". И то, что вовсе мне не обязательно для того, чтобы вводить тексты, пусть даже и HTML гонять X-ы.
Встала задача - полностью русифицировать мой Линукс/Дебиан "ящик". Конечно, можно сказать, что Дебиани так включает в себя поддержку русского языка для консоли. Да, согласен, включает. Но, после выхода в свет одной широко распространенной программы, внезапно появилась еще одна кодировка - кодовая страница cp1251.
Таким образом встала задача подключить:
Для альтернативной кодировки.
loadkeys /usr/lib/kbd/keytables/ru2.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
Для кодировки Koi8.
loadkeys /usr/lib/kbd/keytables/ru1.map setfont /usr/lib/kbd/consolefonts/koi8-8x16
Примечание:
Команда loadkeys загружает таблицу кодировок клавиатуры.
Команда setfont загружает необходимый фонт в знакогенератор контроллера
дисплея
Для кодировки Koi8 но, чтобы на экране были красивые рамочки, как в альтернативной кодировке.
loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16 mapscrn /usr/lib/kbd/consoletrans/koi2alt echo -ne "\033(K\"
Команда mapscrn наверное загружает куда-то таблицу перекодировки. Результат такой - в тексте кодировка Koi8, как в данном случае, а на экран выплевываются коды в альтернативной кодировке. В знакогенераторе альтернативный фонт. В итоге читаем текст Koi8, а рамочки во всех программах - как положено. Но все это действует только после того, как вы плюнете на консоль команду.
echo -ne "\033(K"
Причем ремаппинг действует только в той виртуальной консоли, в которой вы
плюнули echo -ne '\033(K'. Т.е. если хотите ремаппинг в двух консолях, надо
выполнить echo -ne '\033(K' в каждой консоли отдельно.
Важно: Все это не действует из под Midnight Commander. Это стоило мне 2-х
часов.
3. Кодировка Cp1251 (Windows95)
Тут две проблемы:
Первая проблема решилась легко. Как раз перед этим я установил текстовый редактор Ted. А в нем есть фонт Cp1251. Его-то я и использовал. Но файл раскладки клавиатуры пришлось нарисовать самому. За основу я взял файл Алексея Вовенко:
/usr/lib/kbd/keytables/ru1.map
из Дебиана и изменил в нем коды Koi8 на коды Cp1251. Получился файл:
ru_cp1251.map
Его я скопировал в тот же директорий (/usr/lib/kbd/keytables/) Теперь я мог включать фонт и раскладку cp1251 командами:
setfont /usr/local/lib/ted/8x16.1251 loadkeys /usr/lib/kbd/keytables/ru_cp1251.map
4. Переключение кодировок
Ну вот казалось бы и все. Кодировки включаются и выключаются. Казалось бы
можно спокойно идти отдыхать. Но переключение все еще достаточно неудобно.
Тем более я давно хотел попробовать поработать с пакетом dialog. И вот,
посидев пару часиков, я сочинил скрипт на шелле. Можете его забрать, я буду рад,
если он кому-то пригодится.
5. От автора
Коомментарии и пожелания присылайте по адресу:
Казанов Евгений evgeny@dkd.ot.lt