The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Настройка шрифтов для консоли и терминала"
Отправлено auto_tips, 23-Май-22 11:33 
Одна из первых вещей, которые требуется поменять в свежеустановленной системе - шрифты и раскладки клавиатуры. С предлагаемыми по умолчанию шрифтами обычно имеется несколько проблем:

** шрифт в терминале (здесь и далее под терминалом я подразумеваю "настоящий" терминал, т.е. tty) слишком мелкий.
** эстетика некоторых букв неидеальна.
** шрифт в консоли (а под этим словом я подразумеваю GUI-программу - эмулятор терминала) безобразно гладкий и отличается от шрифта в терминале.
** возможности набирать русские буквы нет, либо же есть, но переключение между языками ужасное.
** в Иксах нет возможности набирать типографские символы (в терминале тоже, но в терминале это не особо нужно, даже для цели написания таких вот текстов).

++ Собственный шрифт в терминале

Первое, что нужно сделать - обзавестись хорошим растровым шрифтом. И если для базовой латиницы таких шрифтов, возможно, несколько (но это не точно), то с учётом кириллицы и юникода выбора вообще не остаётся, и Terminus - это единственный вариант. Так что в этом месте нужно пойти в интернет и раздобыть две вещи: 1) сам Terminus в виде архива '.tar.gz' и 2) веб-страничку этого шрифта, которая содержит важную информацию относительно настраиваемых вариантов некоторых букв и которая, тем не менее, почему-то не входит в тарбол.

Далее следуют привычные и очевидные вещи - распаковка тарбола и изучение readme файла. Ну а далее всё просто. Во-первых нужно определиться с альтернативными начертаниями и применить необходимые патчи (подробности в readme). Далее нужно решить, какой размер и начертание шрифта вам подходит. Я обычно использую 9x18, жирное начертание. Выбранный шрифт можно отредактировать с помощью 'gbdfed'.

Так, в шрифт, которым я пользуюсь прямо сейчас, внесены следующие исправления:
** изменено начертание русско-латинской большой буквы "A", так что она имеет вид, схожий с видом этой буквы в классическом ДОС шрифте,
** изменено начертание кириллического "Ээ оборотного", так что его труднее спутать с "Зз",
** изменено начертание строчной кириллической буквы "б", так как дефолтный вариант имеет не вполне органичный вид для русского языка,
** изменено начертание заглавной буквы "Ф" - она стала более "скромной",
** изменено очертание твёрдого знака - он стал поуже, а палочка, отличающая его от мягкого знака, заметнее,
** изменено очертание буквы "Ыы" опять же по мотивам известного досовского шрифта,
** изменено начертание цифры "3", чтобы не путать её с буквой "З". Соответствующие патчи можно найти [[https://github.com/A1-Triard/XTerminus на гитхабе]].

Выбрав и отредактировав шрифт, переходим к сборке:

   $ ./configure
   $ make

Инсталляция сводится к размещению шрифта в правильном месте.

В линуксах читаем 'man setfont', используем '.psf' файл:

   $ cp ter-u18b.psf xter-u18b.psf
   $ gzip -9 xter-u18b.psf
   # mv xter-u18b.psf.gz /usr/share/kbd/consolefonts
   # chown root:root /usr/share/kbd/consolefonts/xter-u18b.psf
   # chmod u=rw,g=r,o=r /usr/share/kbd/consolefonts/xter-u18b.psf

Во FreeBSD читаем 'man vt' и раздел "Virtual Consoles and Terminals" в Hanbook, и превращаем ".bdf" в ".fnt" с помощью "vtfontcvt":

   $ vtfontcvt -o xter-u18b.fnt ter-u18b.bdf
   # mv xter-u18b.fnt /usr/share/vt/fonts
   # chown root:root /usr/share/vt/fonts/xter-u18b.fnt
   # chmod u=rw,g=r,o=r /usr/share/vt/fonts/xter-u18b.fnt

Осталось указать системе использовать наш шрифт.

Во FreeBSD это делается с помощью настройки "allscreens_flags" в "/etc/rc.conf":

   allscreens_flags="-f xter-u18b"

В линуксах настройка дистроспецифична, точнее она зависит от системы инициализации. В случае systemd это настраивается установкой "FONT" в "/etc/vconsole.conf":

   FONT="xter-u18b"

В случае использования системы инициализации OpenRC, нужная опция называется 'consolefont' и располагается в '/etc/conf.d/consolefont':

   consolefont="xter-u18b"

В Artix с OpenRC надо прописывать шрифт в оба места: и в '/etc/conf.d/consolefont', и дополнительно в '/etc/vconsole.conf' для 'mkinitcpio' (а точнее для хука '/usr/lib/initcpio/install/consolefont').

В Slackware нужно просто вписать вызов 'setfont' с нужными параметрами в '/etc/rc.d/rc.font':

   /usr/bin/setfont xter-u18b

Но если нужно загрузить шрифт так же и в initrd, я не представляю как это можно сделать в Slackware.

++ Шрифт в загрузчике

Если хочется использовать тот же шрифт и в меню загрузчика, вот как это делается для Arch-подобных Linux-дистрибутивов и загрузчика GRUB 2.

1. Шрифт в '.pf2' формате кладётся в '/boot/grub/fonts':

   $ grub-mkfont -o xter-u18b.ps2 ter-u18b.bdf
   # mv xter-u18b.ps2 /boot/grub/fonts

2. Затем шрифт прописывается в '/etc/default/grub':

   GRUB_FONT="/boot/grub/fonts/xter-u18b.pf2"

3. Регенерируется реальный конфиг груба:

   # grub-mkconfig -o /boot/grub/grub.cfg

Всё, можно перезагружаться и проверять результат.

++ Шрифт в консоли

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

Современные иксовые приложения не особенно любят растровые шрифты, особенно в "традиционном" формате '.pcf', поэтому необходимо использовать более "модный" '.otb'. Конвертация проста:

   $ fonttosfnt -o xter-u18b.otb ter-u18b.bdf

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

Запихивать такой шрифт в систему не вполне правильно, да и не нужно: в '~/.local/share/fonts' ему будет вполне комфортно. (В прежние времена для этой цели использовалась '~/.fonts', но в рамках борьбы с загаживанием home dir, фонты переехали в указанное выше место.)

Чтобы Иксы обновили список доступный шрифтов, необходимо позвать 'fc-cache -fv'. Однако очень вероятно, что так сразу шрифт не найдётся. Моё основанное на личном опыте заключение таково: в FreeBSD больше никаких телодвижений не требуется, а вот в Linux скорее всего придётся найти способ включить растровые шрифты.

Правда, способ этот скорее всего весьма универсален: надо просто прочитать '/etc/fonts/conf.d/README', и, прочитав, обратить внимание на файлы с названиями '70-yes-bitmaps.conf' и '70-no-botmaps.conf' в '/etc/fonts/conf.d' и '/usr/share/fontconfig/conf.avail' (последняя директория может располагаться и в ином месте, но 'locate conf.avail' должен справиться с поиском).

Дальнейшие действия очевидны: отключить отключение растровых шрифтов путём удаления линка на файл '70-no-botmaps.conf' и включить включение растровых шрифтов путём создания линка на '70-yes-bitmaps.conf'. Этого должно быть достаточно, чтобы 'fc-cache -fv' нашёл-таки наш шрифт, после чего (Иксы лучше перезапустить) наш кастомный шрифт будет можно выбрать в настройках программы - эмулятора терминала.

Продолжение следует...


URL:
Обсуждается: https://www.opennet.ru/tips/info/3205.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру