LINUX.ORG.RU

Шрифты в Telegram (Qt приложения в GTK среде)

 , , ,


0

1

Добрый вечер, друзья. Принес вам задачку:

Debian 9, MATE. Установил qt5-gtk-platformtheme и qt5-style-plugins, в /etc/environment задал QT_QPA_PLATFORMTHEME=gtk2. Так как я люблю шрифты без антиалиасинга, то в ~/.config/fontconfig/fonts.conf прописал следующее (в противном случае, в Qt приложениях шрифты сглаживаются):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit name="rgba" mode="assign">
   <const>none</const>
  </edit>
 </match>
 <match target="font">
  <edit name="hinting" mode="assign">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit name="hintstyle" mode="assign">
   <const>hintmedium</const>
  </edit>
 </match>
 <match target="font">
  <edit name="antialias" mode="assign">
   <bool>false</bool>
  </edit>
 </match>
</fontconfig>

Все шикарно и однородно, все как люблю. (Примеры: файломенеджер и кутишный VLC, например).

Но вот с Телегой не срослось :( На гитхабе нашел у них такой же issue, откоментил, подтвердил, но он там уже год висит. Потому, хз, исправят ли. Судя по некоторым другим жалобам, разрабы не особо быстро «бегут-навстречу-юзерам-аж-волосы-назад».

Так вот, собственно, вопрос: могу ли я как-то запускать Телегу в обход моего fonts.conf?

Как заставить отдельное приложение, типа Телеги или Хромого, игнорировать локальные настройки шрифтов?

QT_QPA_PLATFORMTHEME и QT_STYLE_OVERRIDE не предлагать, так как это меняет только стиль.



UPDATE: Решено

Чтобы приложение игнорировало локальные настройки, запускать его можно таким образом:

XDG_CONFIG_HOME= /opt/Telegram/Telegram

И обратите внимание на пробел между XDG_CONFIG_HOME= и самой командой.

Если это лончер на панели, то в поле Command прописать соответственно:

sh -c "XDG_CONFIG_HOME= /opt/Telegram/Telegram"



UPDATE 2: Вообще шикарно! Наконец-то смог победить корявый шрифт в Хромом при отключенном в системе антиалиасинге:

1) Отсаживаем свой ~/.config в ~/.config.chrome

2) В ~/.config.chrome/fontconfig/fonts.conf включаем антиалиасинг:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit name="antialias" mode="assign">
   <bool>true</bool>
  </edit>
 </match>
</fontconfig>

Возможно будет мыло и ШГ, тогда добавляем остальные параметры на свой вкус (rgba, hinting, hintstyle и т.д.).

3) Запускаем:

XDG_CONFIG_HOME="${HOME}/.config.chrome" chromium

★★★★★

Ответ на: комментарий от EXL

Потому что после знака равенства задается домашний каталог (настоящий или какой-либо другой). Если там пробел, значит XDG_CONFIG_HOME смотрит в никуда. Если в системе полностью отключен антиалиасинг, то чтобы Хром не коверкал шрифты, можно отсадить свой ~/.config (например, в ~/.config.chrome), включить только для Хромого антиалиасинг и запустить его так: XDG_CONFIG_HOME="${HOME}/.config.chrome" chromium. Удобная штука.

Gonzo ★★★★★ ()
Ответ на: offtopic от NobleWolf

Я так понимаю, ширина текстовой колонки подгоняется у них под прикрепляемое изображение. Если оно отсутствует, то текст идет в полную ширину. В том примере она длинная и узкая в заголовке поста. Вот пример с изображением пошире.

Gonzo ★★★★★ ()
Последнее исправление: Gonzo (всего исправлений: 1)