LINUX.ORG.RU

Fontconfig - Chromium и GTK3

 , ,


0

1

Не могу заставить отрисовывать шрифты с полным hint в Chromium и в GTK3 приложениях. DE - KDE4. Qt4, Qt5, GTK2 приложения отрисовываются нормально. В KDE выставил настройки сглаживания шрифтов [ системные ] - поэтому полностью без проблем управляется через /etc/fonts/local.config

Вот так выглядят шрифты в GTK3 и Chromium: http://delidov.ru/upload/fontconfig-chromium.png

Вот так в Qt и GTK2 приложениях: http://delidov.ru/upload/font-kde4.png

user@home ~ $ cat /etc/fonts/local.conf 

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="autohint" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
        <!-- <edit name="embeddedbitmap" mode="assign"><bool>true</bool></edit> -->
    </match>
</fontconfig>
user@home ~ $ cat /etc/gtk-2.0/gtkrc

gtk-icon-theme-name = "Faenza"
gtk-theme-name = "Breeze"
gtk-font-name = "Ubuntu Light 10"
gtk-cursor-theme-name = "DMZ_White"
gtk-button-images = 0
gtk-menu-images = 1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"
gtk-xft-rgba="rgb"
user@home ~ $ cat /etc/gtk-3.0/settings.ini 

[Settings]
gtk-theme-name = Breeze
gtk-icon-theme-name = Faenza
gtk-cursor-theme-name = DMZ_White
gtk-button-images = 0
gtk-menu-images = 1
gtk-auto-mnemonics = 0
gtk-font-name = Ubuntu Light 10
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
$ xrdb -q
...
Xft.antialias:  1
Xft.dpi:        100
Xft.hinting:    1
Xft.hintstyle:  hintfull
Xft.rgba:       rgb

...
Deleted

Стало получше - но неидеально. Причём Qt KDE - вобще отлично рисуют шрифты.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="autohint" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
    </match>
</fontconfig>
Deleted ()

Не идеально - но хоть, что-то:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="autohint" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
        <edit name="lcdfilter" mode="assign"><const>lcdlight</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
        <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
    </match>
</fontconfig
Deleted ()
Ответ на: комментарий от Deleted

все актуальные настройки самого gtk можно получить gtk-query-settings
изменённые пропиши в ~/.config/gtk-3.0/settings.ini
тебя интересует:
gtk-query-settings|grep xft

bass ★★★★★ ()
Ответ на: комментарий от bass

Мда. Беда. В GTK всё как не у людей.

В общем для GTK2 прописал в /etc/gtk-2.0/gtkrc

gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"
gtk-xft-rgba="rgb"

Для GTK3 прописал в /etc/gtk-3.0/settings.ini

gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
Deleted ()
Ответ на: комментарий от Deleted

В GTK всё как не у людей.

и давно fonts.conf стал общечеловеческим стандартом?

GTK3 - нет.

[Settings] первой строкой есть?

bass ★★★★★ ()
Ответ на: комментарий от Deleted

Никаких локальных пользовательских настроек нет для GTK3. Фиг знает, живёт своей жизнью. Причем остальные настройки /etc/gtk-3.0/settings.ini нормально принимает.

[Settings]
gtk-theme-name = Breeze
gtk-icon-theme-name = Faenza
gtk-cursor-theme-name = DMZ_White
gtk-button-images = 0
gtk-menu-images = 1
gtk-auto-mnemonics = 0
gtk-font-name = Ubuntu Light 10
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
Deleted ()
Ответ на: комментарий от bass

и давно fonts.conf стал общечеловеческим стандартом?

Почему бы и нет? Должно же, что-то глобально в системе задавать единые настройки - тем более fonts.conf даже в названии уже содержит стандарт. KDE же не выделывается - принимает настройки, GTK2 тоже, Firefox без проблем.

[Settings] первой строкой есть?

Привёл полный конфиг выше.

Deleted ()
Ответ на: комментарий от Deleted

Должно же, что-то глобально в системе задавать единые настройки

$gtk-query-settings |grep hintstyle
                  gtk-xft-hintstyle: "hintslight"
$echo "Xft.hintstyle:  hintfull" >>$HOME/.Xresources
$xrdb -merge $HOME/.Xresources
$gtk-query-settings |grep hintstyle
                  gtk-xft-hintstyle: "hintfull"
bass ★★★★★ ()
Последнее исправление: bass (всего исправлений: 1)
Ответ на: комментарий от bass

Задал в /etc/X11/Xresources

Xft.hintstyle: hintfull

GTK3 как было пофиг так и пофиг.

Deleted ()
Ответ на: комментарий от bass

gtk-query-settings у меня не гном и этой утилиты нет. Поиск по именам файлов в пакетах не дал результат.

Deleted ()
Ответ на: комментарий от bass

Даже Xft берут свои настройки из font.config. Так, что это проблема GTK3 или конкретной сборки. Все параметры принимает из font.config кроме hintstyle.

$ xrdb -q
...
Xft.antialias:  1
Xft.dpi:        100
Xft.hinting:    1
Xft.hintstyle:  hintfull
Xft.rgba:       rgb

...
Deleted ()

Проанализировал вывод приложения pavucontrol - GTK3 приложение считывает симлинки из /etc/fonts/conf.d/, которые в свою очередь являются конфигами в /usr/share/fontconfig/conf.avail. В Rosa по умолчанию в /etc/fonts/conf.d/ симлинк на 10-hinting-slight.conf. Поменял на 10-hinting-full.conf. Стало лучше. Далее добавил симлинк в /etc/fonts/conf.d/ 10-autohint.conf. Стало ещё лучше. Но всё равно не дотягивает до рендеринга как в Qt или GTK2 - шрифт всё-равно «жирный».

Deleted ()
Ответ на: комментарий от Deleted

В общем погугил насчёт рендеринга шрифтов в GTK3 - нужны специальные патчи для cairo. Никакими конфигами это не вылечить.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.