Как заставить snap-версию Firefox использовать локально установленные шрифты?

Вопрос или проблема

Мне нужно использовать внутреннюю программу, которая зависит от локально установленных шрифтов для своего внешнего вида, но версия 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:

Стандарт Fetch (SF Pro Text)

Не думаю, что существуют такие планы. Но как насчет размещения шрифтов в /usr/local/share/fonts вместо этого?

Ответ или решение

Теория

Использование локально установленных шрифтов в snap-версии Firefox может представлять собой проблему из-за особенностей sandboxing, присущих snap-пакетам. Поскольку snap-пакеты работают в изолированных средах, они по умолчанию не могут обращаться к шрифтам, расположенным вне их файловой системы, таких как личные пользовательские каталоги ~/.fonts или ~/.local/share/fonts. Это может осложнить работу тех приложений, которые сильно зависят от специфических шрифтов.

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

Пример

На момент написания существует известная ошибка, препятствующая использованию локально установленных шрифтов в snap-версии Firefox. Эту проблему активно обсуждают на багтрекере Mozilla (ссылка на баг: Bug 1760996). До официального решения можно воспользоваться временным решением, применяя символические ссылки и обновляя кеш шрифтов.

Автор предлагает использовать символические ссылки следующим образом:

  1. Создать ссылки:

    ln -s ~/.local/share/fonts ~/snap/firefox/current/.local/share/fonts
    ln -s ~/.config/fontconfig ~/snap/firefox/current/.config/fontconfig

    Здесь мы связываем каталоги с шрифтами с местами, где snap-версия Firefox может их видеть.

  2. После этого потребуется обновить кеш шрифтов для задействования изменений:

    fc-cache -f -r
  3. Чтобы изменения вступили в силу, нужно перезапустить Firefox.

Прикладной пример этого решения также включает установку шрифтов от Apple, таких как SF Pro. После настройки символических ссылок автор убедился в работоспособности своего решения, увидев правильное отображение страницы стандарта Fetch при использовании этих шрифтов.

Применение

Для решения проблемы, описанной выше, важно следовать четким шагам по созданию символических ссылок и обновлению кеша. Это временное решение позволяет Firefox использовать локальные шрифты, необходимые для корректной работы некоторых веб-приложений.

Хотя такой обходной путь работает, следует учитывать возможность будущих обновлений snap и Firefox, которые могут предложить более "нативное" решение без необходимости таких ухищрений. До тех пор пользователи могут рассмотреть и другие альтернативные подходы, такие как перемещение шрифтов в системные каталоги, например, /usr/local/share/fonts, что может также помочь устранить эту проблему.

Хотя официальные планы по решению данной проблемы пока не анонсированы, пользователи могут оставаться в курсе событий, следя за обновлениями в репозиториях багов Firefox и snap. До этого момента продвинутые пользователи могут успешно применять вышеописанные методы для обхода существующих ограничений sandboxing’a snap-пакетов, продолжая приемлемый опыт использования выбранного браузера.

Оцените материал
Добавить комментарий

Капча загружается...