Font configuration/Examples - ArchWiki

# Font configuration/Examples

See Font configuration for the main article.

Configurations can vary to a degree. Please post Fontconfig configurations with an explanation for why they were done.

## Hinted fonts

    $XDG_CONFIG_HOME/fontconfig/fonts.conf

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

## No hinting for italic or bold

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

      <match target="font">
        <test name="pixelsize" qual="any" compare="more"><double>15</double></test>
        <edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
        <edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
      </match>

      <match target="font">
        <test name="weight" compare="more"><const>medium</const></test>
        <edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
        <edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
      </match>

      <match target="font">
        <test name="slant"  compare="not_eq"><double>0</double></test>
        <edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
        <edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
      </match>

    </fontconfig>

## Sharp fonts

    <!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>
    </fontconfig>

## Liberation fonts

For font consistency, all applications should be set to use the serif, sans-serif, and monospace aliases, which are mapped to particular fonts by fontconfig. The Liberation fonts were chosen to follow metric-compatibility of the MS Core fonts.

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

        <match target="pattern">
            <test qual="any" name="family"><string>serif</string></test>
            <edit name="family" mode="assign" binding="same"><string>Liberation Serif</string></edit>
        </match>
        <match target="pattern">
            <test qual="any" name="family"><string>sans-serif</string></test>
            <edit name="family" mode="assign" binding="same"><string>Liberation Sans</string></edit>
        </match>
        <match target="pattern">
            <test qual="any" name="family"><string>monospace</string></test>
            <edit name="family" mode="assign" binding="same"><string>Liberation Mono</string></edit>
        </match>

        <match target="pattern">
            <edit name="dpi" mode="assign"><double>96</double></edit>
        </match>
    </fontconfig>

## Enable anti-aliasing only for bigger fonts

Some users prefer the sharper rendering that anti-aliasing does not offer:

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

      <match target="font" >
        <test name="size" qual="any" compare="more">
          <double>12</double>
        </test>
        <edit name="antialias" mode="assign">
          <bool>true</bool>
        </edit>
      </match>

      <match target="font" >
        <test name="pixelsize" qual="any" compare="more">
          <double>16</double>
        </test>
        <edit name="antialias" mode="assign">
          <bool>true</bool>
        </edit>
      </match>
    </fontconfig>

## Chrome OS fonts

This section is being considered for removal.

Reason: We can't have such section for every font in the repositories that users might prefer. Everything necessary is already in Font_configuration#Replace_or_set_default_fonts. (Discuss in Talk:Font configuration/Examples#)

Web browser and another common applications use `Serif`, `Sans-Serif` and `Monospace` as default fonts (Fonts#Font alias). The procedure to change default fonts is similar to replace them. For example, to use Chrome OS fonts ttf-chromeos-fontsAUR:

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
      <!-- Set preferred serif, sans serif, and monospace fonts. -->
      <alias>
        <family>serif</family>
        <prefer><family>Tinos</family></prefer>
      </alias>
      <alias>
        <family>sans-serif</family>
        <prefer><family>Arimo</family></prefer>
      </alias>
      <alias>
        <family>sans</family>
        <prefer><family>Arimo</family></prefer>
      </alias>
      <alias>
        <family>monospace</family>
        <prefer><family>Cousine</family></prefer>
      </alias>
    </fontconfig>

## Google Noto Fonts

This section is being considered for removal.

Reason: We can't have such section for every font in the repositories that users might prefer. Everything necessary is already in Font_configuration#Replace_or_set_default_fonts. (Discuss in Talk:Font configuration/Examples#)

The following configuration might be necessary to make use of Google's Noto Fonts available in the official repositories.

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
      <alias> <family>serif</family>      <prefer> <family>Noto Serif</family> </prefer> </alias>
      <alias> <family>sans-serif</family> <prefer> <family>Noto Sans</family>  </prefer> </alias>
      <alias> <family>sans</family>       <prefer> <family>Noto Sans</family>  </prefer> </alias>
      <alias> <family>monospace</family>  <prefer> <family>Noto Mono</family>  </prefer> </alias>

      <match> <test name="family"> <string>Arial</string> </test>           <edit name="family" mode="assign" binding="strong"> <string>Noto Sans</string>  </edit> </match>
      <match> <test name="family"> <string>Helvetica</string> </test>       <edit name="family" mode="assign" binding="strong"> <string>Noto Sans</string>  </edit> </match>
      <match> <test name="family"> <string>Verdana</string> </test>         <edit name="family" mode="assign" binding="strong"> <string>Noto Sans</string>  </edit> </match>
      <match> <test name="family"> <string>Tahoma</string> </test>          <edit name="family" mode="assign" binding="strong"> <string>Noto Sans</string>  </edit> </match>
      <match> <test name="family"> <string>Times New Roman</string> </test> <edit name="family" mode="assign" binding="strong"> <string>Noto Serif</string> </edit> </match>
      <match> <test name="family"> <string>Times</string> </test>           <edit name="family" mode="assign" binding="strong"> <string>Noto Serif</string> </edit> </match>
      <!--match> <test name="family"> <string>Georgia</string> </test>         <edit name="family" mode="assign" binding="strong"> <string>Noto Serif</string> </edit> </match-->
      <match> <test name="family"> <string>Consolas</string> </test>        <edit name="family" mode="assign" binding="strong"> <string>Noto Mono</string>  </edit> </match>
      <match> <test name="family"> <string>Courier New</string> </test>     <edit name="family" mode="assign" binding="strong"> <string>Noto Mono</string>  </edit> </match>
    </fontconfig>

## Patched packages

Warning: AUR packages are maintained separately from applications in the official repositories. The whole graphical system can become inoperable, if the user-installed core graphical libraries become incompatible.
Note:

- Configuration is usually necessary.
- The new font rendering will not be available until applications restart.
- Applications which statically link to a library will not be affected by the system library, or patches applied to it.

- freetype2-ubuntu — Font configuration shipped with Ubuntu. [1] [2]

  https://launchpad.net/ubuntu/+source/freetype || freetype2-ubuntuAUR fontconfig-ubuntuAUR

- Infinality — Font configuration files, patches, and scripts.

  https://github.com/bohoomil/fontconfig-ultimate || freetype2-infinalityAUR fontconfig-infinalityAUR

To restore the original packages, reinstall freetype2, cairo, and fontconfig as dependencies (use the `--asdeps` flag with pacman when reinstalling). Include lib32-cairo, lib32-fontconfig, and lib32-freetype2 if you also installed 32-bit versions.

## See also

- Gentoo forums

Category:

- Fonts

Hidden category:

- Sections flagged with Template:Remove