В дополнение к заметке об украшении консоли я хочу рассказать о замечательном пакете terminus-fonts, о котором узнал недавно благодаря Kot'у, за что ему большое спасибо. Пакет этот болгарского происхождения и проживает на http в виде архива tar.gz объемом около 100 Кбайт. Его можно найти также в портах FreeBSD и в портежах Gentoo вероятно, и в других местах. Для FreeBSD, в частности, он доступен и в качестве бинарного пакета.
Terminus - не просто шрифтовой набор, а универсальный инструмент для генерации терминальных шрифтов любого назначения. Он включает в себя
- шрифтовые файлы базовой гарнитуры в формате BDF (Bitmap Distribution Format) нормального и полужирного начертания, высотой от 14 до 24 пикселей, в кодировке Unicode;
- набор скриптов для преобразования их в шрифтовые файлы различных используемых Unix-консолями и X-терминалами форматов;
- make-файлы для соответствующих преобразований; необходимые дополнительные данные, в частности, unimap-таблицы для преобразования 8-битных кодировок в Unicode;
- файлы документации на английском и болгарском языках.
В README-файлах дается исчерпывающее описание того, как обращаться с пакетов. И потому я лишь кратко опишу доступные возможности. И так, базовые bdf-шрифты могут быть преобразованы в шрифтовые файлы следующих форматов:
- raw-формат, в котором шрифтовой файл содержит только бинарные данные; этот формат используется для вывода в консольных драйверах BSD-семейства (syscons FreeBSD, pcvt и wscons);
- psf-формат, включающий, кроме собственно шрифтовых данных, заголовок и psf-сигнатуру с дополнительной информацией о шрифте; это - основной формат вывода в Linux-консоли;
- pcf-формат для вывода на X-терминалах.
Генерация шрифтовых файлов осуществляется командой make с указанием соответствующей цели, например,
make raw
для создания raw-файлов,
make psf
и
make pcf
для psf- и pcf-форматов, соответственно. Кроме того, командой
make txt
можно сгенерировать smf-таблицы для ряда кодировок. В чем, впрочем, необходимости как будто нет, так как эти таблицы встраиваются, судя по README, в собственно psf-файл.
Каждое шрифтоначертание автоматически генерируется в нескольких кодировках: ISO8859-1/2/5/9/15/16, Windows-1250/1251/1252/1254, IBM-437/852/855/866, KOI8-R/U/E/F, Bulgarian-MIK, Paratype-PT154/PT254 и Macintosh-Ukrainian. Поскольку все шрифты - более чем 500-символьные, для Linux-консоли можно подобрать любые сочетания кодировок ввода и вывода. Правда, для BSD-консоли шрифты с традиционной для нее кодировкой вывода CP866 сами собой не образуются.
Качество консольных шрифтов исключительно высокое. При этом их внешний вид и читабельность не ухудшаются при нестандартной плотности знаков. Правда, их вариации для X-терминалов именно в терминале выглядят достаточно непривычно. Однако для текстового режима - пожалуй, ничего лучше не придумаешь. Короче говоря, очень рекомендую...