Книга: Погружение в Salix

Доводка консольного режима: русификация вывода

Доводка консольного режима: русификация вывода

Сразу после установки Salix'а символов кириллицы в консоли не увидеть, хотя на стадии инсталляции была установлена русскую локаль, что можно проверить так:

$ localeLANG=ru_RU.utf8 LC_CTYPE="ru_RU.utf8"LC_NUMERIC="ru_RU.utf8" LC_TIME="ru_RU.utf8" LC_COLLATE=C LC_MONETARY="ru_RU.utf8" LC_MESSAGES="ru_RU.utf8" LC_PAPER="ru_RU.utf8" LC_NAME="ru_RU.utf8" LC_ADDRESS="ru_RU.utf8" LC_TELEPHONE="ru_RU.utf8" LC_MEASUREMENT="ru_RU.utf8" LC_IDENTIFICATION="ru_RU.utf8" LC_ALL=

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

$ date

Должно последовать такое:

Cp мaй 7 17:01:36 MSK 2014

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

За загрузку консольных шрифтов отвечает файл rc.font из того же каталога /etc/rc.d. Сразу после установки она содержит единственную строку:

unicode_start ter-v16n

Это наследие давних времён зари юникодизации Linux-консоли, и ныне не работает. Так что смело удаляем её, а взамен вписываем такую:

setfont -v ter-v22b

где -v – опция, обеспечивающая вывод сообщения о загрузке шрифта, а ter-v22b – имя шрифтового файла. Все файлы шрифтов содержатся в каталоге /usr/share/kbd/consolefonts, но не все имеющиеся там шрифты содержат символы кириллицы. Шрифты семейства Terminus – содержат, и к тому же имеются всех мыслимых размеров (от 8x12 до 12x32, так что каждый может подобрать размер по глазам), двух шрифтоначертаний (для LCD-мониторов рекомендуется полужирное – отсюда литера b в имени файла), да ещё и включают таблицу перекодировки внутреннего 16-битного представления во внешнее 8-битное.

Сделанного достаточно, в чём легко убедиться, запустив rc.font на исполнение, которое, благодаря опции -v, выведет на экран такое сообщение:

3aгpyжaeтcя 512-cимвoл шpифтa 11x22 из фaйлa /usr/share/kbd/consolefonts/ter-v22b.psf.gz3aгpyжaeтcя юни?oднaя тaблицa oтoбpaжeния...

Впрочем, изменение шрифта можно будет уловить органолептически, без всяких сообщений. Ну а особо недоверчивые могут ещё и выполнить затем команду date, которая русским по чёрному сообщит о текущем дне неделе и месяце.

Ещё раз повторяю: никаких дополнительных телодвижений, которые можно встретить в сетевых описаниях, типа старта/стопа режима unicode, загрузки карты соответствия и вывода на все консоли так называемой «магической последовательности», ныне не нужно. Разве что что при использовании старых шрифтов, без собственной карты – но нынче в них нет ни малейшей необходимости: шрифты семейства Terminus покрывают почти все потребности применителей. Ну а тем, которые с претензиями, остаются ещё и шрифты типа LatArCyrHeb, LatGrkCyr и LatKaCyrHeb (между нами говоря, вполне уродливые, но зато содержащие символы не только латиницы и кириллицы, но и некоторых более иных алфавитов).

Теперь для полноты счастья остаётся только обеспечивать и ввод символов кириллицы – например, чтобы комментировать свои конфиги и скрипты на языке родных осин. Этим делом ведает файл /etc/rc.d/rc.keymap, который по умолчанию выглядит так:

#!/bin/sh# Load the keyboard map. More maps are in /usr/share/kbd/keymaps. if [ -x /usr/bin/loadkeys ]; then /usr/bin/loadkeys -u us fi

Здесь достаточно заменить английско-американскую раскладку us на любую подходящую кириллическую, список которых можно просмотреть так:

$ ls ls /usr/share/kbd/keymaps/i386/qwerty/ru*

Например, на такую:

if [ -x /usr/bin/loadkeys ]; then /usr/bin/loadkeys -u ruwin_cplk-UTF-8

Это русская раскладка для кодировки UTF-8, соответствующая варианту winkeys из Иксов, с переключением латиница/кириллица клавишей CapsLock. Тем же, кто когда-то учился печатать на пишущей машинке, и так и не смог привыкнуть к маразму под названием «вариант winkeys», могу предложить мою раскладку, соответствующую иксовому варианту Typewrite Legacy – ru-type-legacy_cplk-UTF-8. Соответственно, вторая строка в rc.keymap приобретут такой вид:

/usr/bin/loadkeys -u ru-type-legacy_cplk-UTF-8

Впрочем, ностальгия по временам, когда «Эрика даёт четыре копиии» – не единственная причина для применения применения этой «старомодной» раскладки: знаки препинания на нижнем регистре (инвертированно с цифрами) зело способствуют скорости печати. А для массового ввода цифири NumPad ещё не запретили.

Оглавление книги


Генерация: 1.109. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз