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

Зачем так сложно?


Возникает вопрос - почему нельзя поставить шрифты сразу для кодов koi8-r и обойтись без какой-либо screenmap?

На самом деле - можно. Можно поставить шрифты для koi8-r, тем более, что в наборе шрифтов они есть и для всех трех матриц (а для 8x16, даже в нескольких вариантах - koi8-r, koi8-rb, koi8-rc).

Тогда соответствующие строчки в rc.conf будут выглядеть

scrnmap="NO" font8x16=koi8-r-8x16 font8x14=koi8-r-8x14 font8x8=koi8-r-8x8

Однако, не торопитесь это делать. Дело в том, что шрифты cp866 лучше подходят для видеокарты "писишки".

Каждый символ на экране рисуется в матрице шириной в 9 точек, при этом "перерисовать" (загружая шрифты) можно только 8 из них. Девятая колонка служит для того, чтобы символы, если они даже полностью занимают все восемь "программируемых" колонок, все-таки не сливались между собой. С другой стороны есть такие символы псевдографики, которые предназначены для рисования рамочек и просто горизонтальных линий. Для них, наоборот, желательно, чтобы они сливались, иначе горизонтальные линии будут выглядеть пунктирными.
Видео-контроллер, учитывает это и отрисовывает девятую колонку по-разному. Для обычных символов эта колонка остается пустой (независимо от содержимого остальных восьми колонок), а для псевдографических - девятая колонка точек просто повторяет восьмую.
  Проблема в том, что видео-контроллер имеет свое мнение о том, какие символы являются псевдографическими (и, следовательно, должны сливаться в сплошную линию), а какие - нет. Псевдографическими он считает символы с кодами в диапазоне C0 - DF.
  Так вот, в шрифтах cp866 "псевдографика" действительно попадает в этот диапазон (и горизонтальные линии рисуются слитно), а в koi8-r - нет (и те же линии рисуются пунктиром).

Другая проблема при использовании шрифтов koi8-r может возникнуть, если вы захотите включить поддержку "мыши" в syscons.
  Дело в том, что для отрисовки графического курсора syscons перепрограммирует шрифты для четырех символов (коды D0 - D3). В шрифтах cp866 эти коды попадают на псевдографические символы (причем, редко используемые), а в koi8-r - на буквы "п я р с". Естественно, если вы используете шрифты koi8-r, при "мышевождении" эти буквы на экране портятся.

Правда, эта проблема имеет и другое решение. В последних версиях syscons, коды, используемые под "мышиный" курсор, можно изменить, пересобрав ядро системы.

Поэтому, тот же "FreeBSD Handbook" советует для русификации первым делом пересобрать ядро, добавив в файл конфигурации

option "SC_MOUSE_CHAR=0x03"

Хороший совет, если не обращать внимание на то, что сама по себе пересборка ядра - задача более сложная (и требует значительно больше времени), чем правка пары строк в rc.conf. (Кстати, и 0x03 - не очень удачная замена).

Вот эти причины и делают более предпочтительными шрифты cp866, хотя эффект от них чисто косметический.



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