Вопрос или проблема
Мне нужно использовать внутреннюю программу, которая зависит от локально установленных шрифтов для своего внешнего вида, но версия Firefox в snap по умолчанию не ищет шрифты в ~/.fonts пользователя. Существует ли обходной путь для этого? Если нет, планируется ли решение этой конкретной задачи?
Примечание: В настоящее время существует ошибка, которая мешает Firefox в snap правильно использовать локально установленные шрифты. См.: https://bugzilla.mozilla.org/show_bug.cgi?id=1760996
Я настроил обходной путь на своем компьютере, используя символические ссылки:
~/snap/firefox/current/.local/share/fonts
→~/.local/share/fonts
~/snap/firefox/current/.config/fontconfig
→~/.config/fontconfig
То есть сначала вы создаете символические ссылки.
ln -s ~/.local/share/fonts ~/snap/firefox/current/.local/share/fonts
ln -s ~/.config/fontconfig ~/snap/firefox/current/.config/fontconfig
После этого запустите
fc-cache -f -r
чтобы заставить Firefox использовать обновленный кэш шрифтов.
Наконец, перезапустите Firefox, чтобы изменения вступили в силу.
Пример
Я установил шрифты SF Pro от Apple на свой компьютер. Вот что я получил после настройки этих символических ссылок, открытия https://fetch.spec.whatwg.org/ и изменения глобального семейства шрифтов (как определено в <html>
этой страницы) на SF Pro Text:
Не думаю, что существуют такие планы. Но как насчет размещения шрифтов в /usr/local/share/fonts
вместо этого?
Ответ или решение
Теория
Использование локально установленных шрифтов в snap-версии Firefox может представлять собой проблему из-за особенностей sandboxing, присущих snap-пакетам. Поскольку snap-пакеты работают в изолированных средах, они по умолчанию не могут обращаться к шрифтам, расположенным вне их файловой системы, таких как личные пользовательские каталоги ~/.fonts
или ~/.local/share/fonts
. Это может осложнить работу тех приложений, которые сильно зависят от специфических шрифтов.
Snap предлагает многочисленные преимущества, такие как автоматическое обновление и повышенная безопасность, однако его ограничения иногда требуют обходных путей для обеспечения совместимости с определенными локальными конфигурациями. В данном случае, обсуждаемая проблема связана именно с невозможностью доступа к локальным шрифтам.
Пример
На момент написания существует известная ошибка, препятствующая использованию локально установленных шрифтов в snap-версии Firefox. Эту проблему активно обсуждают на багтрекере Mozilla (ссылка на баг: Bug 1760996). До официального решения можно воспользоваться временным решением, применяя символические ссылки и обновляя кеш шрифтов.
Автор предлагает использовать символические ссылки следующим образом:
-
Создать ссылки:
ln -s ~/.local/share/fonts ~/snap/firefox/current/.local/share/fonts ln -s ~/.config/fontconfig ~/snap/firefox/current/.config/fontconfig
Здесь мы связываем каталоги с шрифтами с местами, где snap-версия Firefox может их видеть.
-
После этого потребуется обновить кеш шрифтов для задействования изменений:
fc-cache -f -r
-
Чтобы изменения вступили в силу, нужно перезапустить Firefox.
Прикладной пример этого решения также включает установку шрифтов от Apple, таких как SF Pro. После настройки символических ссылок автор убедился в работоспособности своего решения, увидев правильное отображение страницы стандарта Fetch при использовании этих шрифтов.
Применение
Для решения проблемы, описанной выше, важно следовать четким шагам по созданию символических ссылок и обновлению кеша. Это временное решение позволяет Firefox использовать локальные шрифты, необходимые для корректной работы некоторых веб-приложений.
Хотя такой обходной путь работает, следует учитывать возможность будущих обновлений snap и Firefox, которые могут предложить более "нативное" решение без необходимости таких ухищрений. До тех пор пользователи могут рассмотреть и другие альтернативные подходы, такие как перемещение шрифтов в системные каталоги, например, /usr/local/share/fonts
, что может также помочь устранить эту проблему.
Хотя официальные планы по решению данной проблемы пока не анонсированы, пользователи могут оставаться в курсе событий, следя за обновлениями в репозиториях багов Firefox и snap. До этого момента продвинутые пользователи могут успешно применять вышеописанные методы для обхода существующих ограничений sandboxing’a snap-пакетов, продолжая приемлемый опыт использования выбранного браузера.