fontconfig: не может изменить семейство шрифтов
Это мой ~/.config/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>
<edit name="hinting" 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>
<alias>
<family>monospace</family>
<prefer>
<family>Meslo LG S DZ Regular for Powerline</family>
<family>Inconsolata</family>
<family>Menlo</family>
<family>DejaVu Sans Mono</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>Droid Sans</family>
<family>Ubuntu</family>
<family>Helvetica</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>Bitstream Vera Serif</family>
<family>Times New Roman</family>
</prefer>
</alias>
</fontconfig>
Как вы можете видеть, я хочу, чтобы Meslo использовался как моноширинный шрифт. Я получил имя от fc-list | grep Meslo
:
/usr/share/fonts/OTF/Meslo LG M DZ Regular for Powerline.otf: Meslo LG M DZ for Powerline:style=RegularForPowerline
/usr/share/fonts/OTF/Meslo LG L DZ Regular for Powerline.otf: Meslo LG L DZ for Powerline:style=RegularForPowerline
/usr/share/fonts/OTF/Meslo LG L Regular for Powerline.otf: Meslo LG L for Powerline:style=RegularForPowerline
/usr/share/fonts/OTF/Meslo LG S DZ Regular for Powerline.otf: Meslo LG S DZ for Powerline:style=RegularForPowerline
/usr/share/fonts/OTF/Meslo LG M Regular for Powerline.otf: Meslo LG M for Powerline:style=RegularForPowerline
/usr/share/fonts/OTF/Meslo LG S Regular for Powerline.otf: Meslo LG S for Powerline:style=RegularForPowerline
Файл конфигурации включен в /etc/fonts/conf.d/50-user.conf:
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
Я побежал fc-cache -vf
и перезагрузил, потом попробовал fc-match monospace
и ожидал Месло, но вместо этого получил Inconsolata. Зачем?
2 ответа
Очевидно, у меня была опечатка в моей фамилии, я сделал fc-list | grep Meslo
и копия вставила жирную часть в <family>
тег:
/ usr / share / fonts / OTF / Meslo LG M DZ Regular для Powerline.otf: Meslo LG M DZ для Powerline: стиль =RegularForPowerline
мой конфиг теперь выглядит так:
<alias>
<family>monospace</family>
<prefer>
<family>Meslo LG M DZ for Powerline</family>
<family>DejaVu Sans Mono</family>
<family>Inconsolata</family>
</prefer>
</alias>
и работает как положено
Я использовал этот фрагмент в прошлом с успехом,
<!-- Scaling a chosen font with Fontconfig.
By poige, 2008.
-->
<match target="font">
<test name="family">
<string>Liberation Sans</string>
</test>
<edit name="pixelsize" mode="assign">
<times><name>pixelsize</name>, <double>1.1</double></times>
</edit>
</match>
Вот источник этого фрагмента, но на русском языке.