Fonts

From Funtoo
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Install the packages

Linux font quality is a chronic issue, by default fonts configuration far from ideal look. This can solved by rebuilding media-libs/freetype with the infinality USE flag, which applies the infinality patch set. Infinality patches were previously available only in the lcd-filtering overlay and have now been merged into the main Funtoo portage tree.

root # echo "media-libs/freetype infinality" >> /etc/portage/package.use
root # emerge -uN fontconfig 

Advanced configuration

Fontconfig

Default configuration

root # eselect fontconfig enable 10-antialias.conf
root # eselect fontconfig enable 10-autohint.conf  
root # eselect fontconfig enable 10-hinting.conf  
root # eselect fontconfig enable 10-hinting-slight.conf  
root # eselect fontconfig enable 10-sub-pixel-rgb.conf  
root # eselect fontconfig enable 11-lcdfilter-default.conf  
root # eselect fontconfig enable 70-no-bitmaps.conf  
root # eselect fontconfig disable 10-hinting-full.conf  
root # eselect fontconfig disable 10-hinting-medium.conf  
root # eselect fontconfig disable 10-no-sub-pixel.conf  
root # eselect fontconfig disable 10-sub-pixel-bgr.conf  
root # eselect fontconfig disable 10-sub-pixel-vbgr.conf  
root # eselect fontconfig disable 10-sub-pixel-vrgb.conf  
root # eselect fontconfig disable 10-unhinted.conf

Linux configuration

Same as default configuration except:

root # eselect fontconfig enable 21-hinting-small-aquabase-slight.conf
root # eselect fontconfig enable 21-hinting-small-browallia-slight.conf  
root # eselect fontconfig enable 22-hinting-courier-italic-slight.conf

Infinality’s configuration

Same as default configuration except:

root # eselect fontconfig enable 15-hinting-tt-instructed-full.conf
root # eselect fontconfig enable 20-hinting-small-fonts-slight.conf  
root # eselect fontconfig enable 21-hinting-small-aquabase-slight.conf  
root # eselect fontconfig enable 21-hinting-small-browallia-slight.conf  
root # eselect fontconfig enable 22-hinting-courier-italic-slight.conf  
root # eselect fontconfig enable 25-hinting-small-arial-black-slight.conf

Windows configuration

Same as default except:

root # eselect fontconfig disable 10-autohint.conf
root # eselect fontconfig disable 10-hinting-slight.conf  
root # eselect fontconfig enable 10-hinting-full.conf  
root # eselect fontconfig enable 15-hinting-non-tt-instructed-slight.conf  
root # eselect fontconfig enable 20-hinting-small-fonts-slight.conf  
root # eselect fontconfig enable 21-hinting-small-aquabase-slight.conf  
root # eselect fontconfig enable 21-hinting-small-browallia-slight.conf  
root # eselect fontconfig enable 22-hinting-courier-italic-slight.conf  
root # eselect fontconfig enable 25-hinting-small-arial-black-slight.conf

OSX configuration

Same as default configuration except:

root # eselect fontconfig disable 10-autohint.conf
root # eselect fontconfig disable 10-hinting.conf  
root # eselect fontconfig disable 10-hinting-slight.conf  
root # eselect fontconfig enable 10-unhinted.conf  
root # eselect fontconfig enable 15-hinting-tt-instructed-none.conf

Freetype

Freetype can be configured through environment variables (see /etc/env.d/99lcdfilter for a list of the variables and their description). Those variables can be overridden on a per-user basis by either redefining them in a startup file (such as ~/.bash_profile) or by sourcing the /usr/lib/ft-settings.sh script with the desired style in parameter (you can, of course, source the script from a startup file).

usage: source ft-settings.sh <style>

Possible styles:   
  default      - Use default settings.  A compromise that should please most people  
  osx          - Simulate OSX rendering  
  ubuntu       - Simulate UBUNTU rendering  
  linux        - Generic Linux style - no snapping or certain other tweaks  
  windows      - Simulate Windows rendering  
  vanilla      - Just subpixel hinting

Infinality styles:  
  classic      - Infinality rendering circa 2010. No snapping  
  nudge        - CLASSIC with lightly stem snapping and tweaks  
  push         - CLASSIC with medium stem snapping and tweaks  
  shove        - Full stem snapping and tweaks without sharpening  
  sharpened    - Full stem snapping, tweaks, and Windows-style sharpening  
  infinality   - Settings used by Infinality

LibXft

Only legacy programs still use libXft. The default configuration is defined in /usr/share/X11/app-defaults/Xft. It can be overriden on a per-user basis in the ~/.Xresources or ~/.Xdefaults files:

   ~/.Xdefaults
Xft.antialias:  1
Xft.autohint:   0  
Xft.dpi:        96  
Xft.hinting:    1  
Xft.hintstyle:  hintfull  
Xft.lcdfilter:  lcddefault  
Xft.rgba:       rgb