Коротко о главном
За отрисовку текста в Linux отвечают freetype, harfbuzz и fontconfig, а приложения обращаются к ним через системные настройки. От корректной конфигурации зависит читаемость интерфейса, вид документов и совместимость с веб-страницами. Проблемы чаще всего связаны не с отсутствием шрифта, а с неправильными подстановками или кэшем. Разберём инвентаризацию шрифтов, установку, правила fontconfig и проверку результата.
Правильно подобранные шрифты снижают усталость глаз при долгой работе. Корректные подстановки избавляют от квадратов вместо символов и неожиданной смены гарнитуры. Единые настройки помогают согласовать вид приложений GTK, Qt и браузера. Для дизайна и вёрстки важно понимать, как система выбирает шрифт и как это влияет на метрики.
Этот материал — быстрый старт по Шрифты в Linux. За 15 минут вы получите рабочую конфигурацию и поймёте, куда смотреть дальше.
Установка
В Debian, Ubuntu и Linux Mint используется пакетный менеджер APT:
sudo apt install fonts-noto fonts-dejavu fontconfig
В Fedora и RHEL-совместимых системах пакет ставится через DNF:
sudo dnf install google-noto-sans-fonts dejavu-sans-fonts fontconfig
В Arch Linux и производных пакет доступен в официальных репозиториях:
sudo pacman -S noto-fonts ttf-dejavu fontconfig
Минимальная настройка
1. Инвентаризация установленных шрифтов
fc-list показывает все известные системе семейства, fc-match — какое семейство будет выбрано для запроса. Эти две команды решают большинство вопросов о том, почему приложение выглядит не так. Фильтруйте вывод по языку или стилю.
fc-list : family | sort -u | head -20
fc-match sans-serif
fc-match 'Noto Sans:lang=ru'
2. Установка семейств
Пакеты шрифтов ставятся через менеджер пакетов, а пользовательские файлы можно положить в ~/.local/share/fonts. После добавления нужно обновить кэш. Не копируйте шрифты с сомнительной лицензией в системные каталоги.
mkdir -p ~/.local/share/fonts
cp *.ttf ~/.local/share/fonts/
fc-cache -fv
3. Правила подстановки
Файл local.conf задаёт предпочтения для общих семейств вроде sans-serif и monospace. Это влияет на приложения, которые не выбирают шрифт явно. Пользовательские правила кладутся в ~/.config/fontconfig/fonts.conf.
mkdir -p ~/.config/fontconfig
cp local.conf ~/.config/fontconfig/fonts.conf
fc-cache -f
4. Сглаживание и хинтинг
Параметры antialias, hinting и rgba влияют на чёткость текста на разных экранах. На LCD-мониторах субпиксельное сглаживание может давать цветные каймы. На HiDPI-экранах чаще достаточно обычного сглаживания.
fc-match -v 'Noto Sans' | grep -E 'antialias|hinting|rgba'
xrdb -query | grep -i xft
Минимальный конфиг
Начните с минимального рабочего варианта. Не копируйте большой конфиг целиком: добавляйте параметры по одному и проверяйте результат после каждого изменения.
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer><family>Noto Sans</family></prefer>
</alias>
<match target="font">
<edit name="hinting" mode="assign"><const>hintslight</const></edit>
</match>
</fontconfig>
Шпаргалка по командам
- Инвентаризация установленных шрифтов: fc-list : family | sort -u | head -20
- Установка семейств: mkdir -p ~/.local/share/fonts
- Правила подстановки: mkdir -p ~/.config/fontconfig
- Сглаживание и хинтинг: fc-match -v ‘Noto Sans’ | grep -E ‘antialias|hinting|rgba’
- Эмодзи и редкие символы: sudo apt install fonts-noto-color-emoji
- Проверка в приложениях: fc-cache -fv
Практические советы
Эти рекомендации проверены на повседневных задачах. Начните с тех, которые закрывают вашу текущую боль, а не со всего списка сразу.
Совет 1. Используйте fc-match, а не догадки, чтобы понять, какой шрифт реально
Используйте fc-match, а не догадки, чтобы понять, какой шрифт реально выбран.
Совет 2. Храните пользовательские шрифты в ~/.local/share/fonts, а не в /usr/sh
Храните пользовательские шрифты в ~/.local/share/fonts, а не в /usr/share/fonts.
Совет 3. После копирования файлов всегда запускайте fc-cache -fv.
После копирования файлов всегда запускайте fc-cache -fv.
Совет 4. Не отключайте хинтинг полностью на малых размерах: текст может стать р
Не отключайте хинтинг полностью на малых размерах: текст может стать размытым.
Что дальше
Быстрый старт не означает «настроить навсегда». Когда базовый сценарий заработает, вернитесь к конфигурации и проверьте, что она переживёт перезагрузку: файлы на месте, служба включена в автозагрузку, путь к данным не зависит от текущего каталога.
Дальше имеет смысл разобраться с резервной копией и журналами Шрифты в Linux. Это не самая заметная часть работы, но именно она превращает эксперимент в инструмент, которым можно пользоваться каждый день.
Чек-лист
- Команды из шпаргалки выполняются без ошибок после перезагрузки.
- Пароли и токены не хранятся в истории команд и конфигурации в открытом виде.
- Понятно, где смотреть логи и что считать признаком проблемы.
- Есть копия конфигурации, которую можно восстановить.
Короткие ответы на частые вопросы
Нужно ли запускать всё от root?
Нет. Права root нужны для установки пакетов и изменения системных файлов, но сама программа и её данные должны принадлежать отдельному пользователю. Постоянная работа под root превращает любую ошибку в критическую.
Что делать, если после перезагрузки ничего не работает?
Сначала проверьте, включена ли служба в автозагрузку и не изменился ли путь к конфигурации. Посмотрите журнал текущей загрузки: он почти всегда указывает на отсутствующий файл, неверные права или занятый порт.
Как обновлять без сюрпризов?
Читайте примечания к версии, делайте резервную копию конфигурации и проверяйте обновление на тестовом стенде. Не обновляйтесь в пятницу вечером перед выходными: время на откат должно быть частью плана.
Итог
Этого достаточно, чтобы начать. Дальше углубляйтесь по мере задач: документация Шрифты в Linux станет понятнее, когда появится реальный сценарий использования.