Skip to content

Instantly share code, notes, and snippets.

@iguoli
Last active June 23, 2017 08:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iguoli/6283542af350b4816ee8d985023ad653 to your computer and use it in GitHub Desktop.
Save iguoli/6283542af350b4816ee8d985023ad653 to your computer and use it in GitHub Desktop.
使用fontconfig-infianlity改善Linux字体渲染

使用fontconfig-infianlity改善Linux字体渲染

基于Linux Mint发行版本

用infinality美化你的字体

  1. 添加fontconfig-infinality的软件源并安装
sudo add-apt-repository ppa:no1wantdthisname/ppa
sudo apt update
sudo apt install fontconfig-infinality
  1. 进入/etc/fonts/infinality,参考README文件中的HOW TO CREATE YOUR OWN CUSTOM RENDERING STYLE
  • 创建自己的预设风格
cd /etc/fonts/infinality/styles.conf.avail
sudo cp -rp linux linux-zh
cd linux-zh
  • 20-aliases-default-linux.conf中添加中文预设字体
sudo rm 20-aliases-default-linux.conf
sudo cp ../linux/20-aliases-default-linux.conf .
sudo vim 20-aliases-default-linux.conf

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

    <!-- ##Style: linux -->

    <!-- ******************************************************************  -->
    <!-- *************************** ALIASES ******************************  -->
    <!-- ******************************************************************  -->

    <!-- Default fonts - Linux Appearance -->
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>DejaVu Sans</family>
            <family>WenQuanYi Micro Hei</family>
        </prefer>
    </alias>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Liberation Serif</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Liberation Mono</family>
            <family>WenQuanYi Micro Hei Mono</family>
        </prefer>
    </alias>

</fontconfig>
  • 60,61分别定义了truetype和非truetype的字体渲染,复制一份非truetype字体配置文件,然后进行修改
sudo cp 60-group-non-tt-fonts.conf 62-group-chinese-fonts.conf
sudo cp 61-group-non-tt-rendering-inf-7-xp-lin.conf 63-group-chinese-fonts-rendering.conf
sudo vim 62-group-chinese-fonts.conf

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

    <!-- ##Style: common -->

    <!-- Make these fonts use autohint slight hinting -->
    <!-- Makes only horizontal stems align to pixels.  Truer to glyph -->

    <!-- A list of WenQuanYi fonts -->
    <match target="font">
        <test name="force_autohint">
            <bool>false</bool>
        </test>
        <test name="family">
            <string>WenQuanYi Micro Hei</string>
            <string>WenQuanYi Micro Hei Light</string>
            <string>WenQuanYi Micro Hei Mono</string>
            <string>WenQuanYi Micro Hei Mono Light</string>
            <string>WenQuanYi Micro Zen Hei</string>
            <string>WenQuanYi Micro Zen Hei Mono</string>
        </test>
        <edit name="font_type" mode="assign">
            <string>Chinese Font</string>
        </edit>
    </match>

</fontconfig>

sudo vim 63-group-chinese-fonts-rendering.conf

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

    <!-- ##Style: Linux-zh -->         

    <match target="font">
        <test name="font_type">
            <string>Chinese Font</string>
        </test>
        <test name="qt_use_subpixel_positioning">
            <bool>true</bool>
        </test>
        <edit name="autohint" mode="assign">
            <bool>false</bool>
        </edit>
        <edit name="hintstyle" mode="assign">
            <const>hintslight</const>
        </edit>
        <edit name="hinting" mode="assign">
            <bool>true</bool> 
        </edit>
        <edit name="antialias" mode="assign">                                  
            <bool>true</bool>
        </edit>                        
    </match>

</fontconfig>
  • 运行infctl.sh设置自己的字体风格
cd /etc/fonts/infinality
./infctl.sh setstyle linux-zh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment