Хочу признаться.
На самом деле я уже некоторое (довольно продолжительное) время пользуюсь собственными пиксельными шрифтами.
Почему? Потому что могу. Теперь можете и вы.
Что у меня вам есть? Шрифт Salut Mono делался специально для консоли. Он есть в размерах 8, 11, 12, 14, 16 и 22 пикселя высотой (строки целиком), нескольких вариантах ширины и кое где с жирным вариантом. На картинке (оригинал) есть большая часть из них.
Как установить и использовать?
В этом архиве есть шрифты в формате BDF и PSF. Если вы на Linux, на десктопе можете использовать BDF. Они лежат в подкаталоге salut-mono архива. Скорее всего (например в KDE) в системе есть встроенный способ установки шрифтов. Если нет, то их можно установить вручную, скопировав в .fonts
(скопируйте туда сам каталог salut-sans). После чего может быть нужно обновить кэш шрифтов. Я для этого нашёл команды fc-cache -fv
и xset fp rehash
.
Правда, не все программы пиксельные шрифты поддерживают — в олдскульных терминалах типа xterm или rxvt всё работает отлично, но, например, в приложениях, использующих библиотеку harfbuzz — нет.
Для установки в консоль Linux (которая по Ctrl-Alt-F1) подходят шрифты в формате PSF. Они в архиве в build/consolefonts
. Здесь только варианты шириной 8 пикселей, т. к. это технические ограничения текстового режима, если надо другие — можете сгенерить сами утилитой bdf2psf
. (Далее нужны права рута) Их можно скопировать в /usr/share/consolefonts
(сами файлы, не каталог). Как настроить — почитайте в документации в своём дистрибутиве. В системах Debian это делает console-setup
, В Gentoo с OpenRC — сервис consolefont
.
Ну разумеется, эти шрифты можно использовать не только в консоли. Изначальной задумкой было использовать их во всяких поделках на микроконтроллерах. Формат BDF очень простой и открытый — так что проблем с этим — никаких.
И да, это опенсорс и он лежит в репозитории: https://git.disroot.org/Vovanium/Salut_fonts
Лицензия CC0 — юзайте где и как хотите.
В репозитории ещё есть Salut Sans (такой же, но пропорциональный), правда он сыроват и его особо негде применять.
#pixelart #fonts
Пример, как настроить rxvt (аналогично настраивается и xterm). Его настройки (обычно) лежат в файле
Первые две строчки устанавливают нормальное начертание, следующие две — жирное. Последняя — отключает встроенные в терминал символы рамок (в Salut Mono есть свои нормальные)..Xresources
.Как расшифровываются эти строки? Это формат XLFD (погуглите, если интересно), в нём дефисами разделены разные параметры, как то название, жирность (medium/bold), курсивность (R — нормальный, не курсив), относительная ширина (normal — обычная), размер (в пикселях). Звёздочка означает, что параметр не важен.
Все эти обозначения могут зависеть от шрифта. В Xorg есть программка
xfontsel
, которая позволяет интерактивно подобрать обозначение шрифта, иxlsfonts
, выводящая список всех установленных в этом формате.В отношении Salut-mono значение размера может быть 8, 11, 12, 14, 16, 22.
Относительная ширина может быть следующей:
normal — есть у всех размеров.
semiexpanded — есть у размера 14 это размер 14×8.
extended — у 8 и 11, 8×6 и 11×8
wide — у 8, 11, 12 и 16, двойной ширины по сравнению с normal.
Так почему же в качестве шрифта у меня написано сразу два, причём один normal, другой wide?
А потому, что в это только кажется, что в консоли символы моноширинные. На самом деле они могут быть нормальной ширины (занимать одну „ячейку“ — знакоместо) и удвоенной (два знакоместа).
Но шрифт Salut Mono истинно моноширинный, поэтому для символов двойной ширины нужен отдельный шрифт.
Может, я сделаю более изящное решение для этого, но пока так.
С символами двойной ширины типичный европеец скорее всего не столкнётся. Это в основном восточноазиатские иероглифы, слоговые азбуки, а также (почему-то) некоторые технические символы. Кому интересно, что к чему — ищите описание POSIX-функции
wcwidth()
и Unicode® Standard Annex #11. East Asian Width.На картинке кусок скриншота из консольного плеера
moc
с треками на японском языке — на нём катакана в два раза шире латинских букв.Пример, как настроить rxvt (аналогично настраивается и xterm). Его настройки (обычно) лежат в файле
.Xresources
.