Difference between revisions of "Fonts"

From Funtoo
Jump to navigation Jump to search
 
m (more details)
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== LCD-Filtering overlay ==
== Console Only Fonts ==
Funtoo Linux planning to integrate LCD-filtering overlay into main tree in order to have very good font experience. Before that the overlay available via layman and manual steps required as described below. Overlay consist of patched versions of <tt>cairo</tt>, <tt>libXft</tt>, <tt>fontconfig</tt>, <tt>freetype</tt> with the aim of getting nice hinting and rendering, emulate the Ubuntu/MS Windows/Mac OS X fonts appearance.
Console fonts for tty's are easily configurable, and testable.
== Install the packages ==
 
<console> # emerge -uN fontconfig freetype cairo libXft</console>
{{console|body=
== Advanced configuration ==
###i## cd /usr/share/consolefonts/
=== Fontconfig ===
###i## ls #todisplaythefont files
###i## setfont default8x9 #sets the 8x9 default font (this will be tiny, and you may not like it)
###i## setfont #returns the system to the system default}}
 
Once you determine the font you like make it the system default:
 
{{file|name=/etc/conf.d/consolefont|lang=|desc=setting the system default font to the tiny text default8x9|body=
consolefont="default8x9"
}}
 
More console font packages exist in portage:
{{console|body=
###i## emerge media-fonts/terminus-font
}}
 
The readme files in /usr/share/consolefonts contain valuable information, make sure to go through them.
 
== Fontconfig ==
By default font configurations do not look ideal.  This can be solved by rebuilding {{c|media-libs/freetype}} with the infinality USE flag, which applies the infinality patch set.
 
{{console|body=
###i## echo "media-libs/freetype infinality" >> /etc/portage/package.use
###i## emerge -uN fontconfig }}


=== Default configuration ===
=== Default configuration ===


<console>eselect fontconfig enable 10-antialias.conf
{{console|body=
eselect fontconfig enable 10-autohint.conf   
###i## eselect fontconfig enable 10-antialias.conf
eselect fontconfig enable 10-hinting.conf   
###i## eselect fontconfig enable 10-autohint.conf   
eselect fontconfig enable 10-hinting-slight.conf   
###i## eselect fontconfig enable 10-hinting.conf   
eselect fontconfig enable 10-sub-pixel-rgb.conf   
###i## eselect fontconfig enable 10-hinting-slight.conf   
eselect fontconfig enable 11-lcdfilter-default.conf   
###i## eselect fontconfig enable 10-sub-pixel-rgb.conf   
eselect fontconfig enable 70-no-bitmaps.conf   
###i## eselect fontconfig enable 11-lcdfilter-default.conf   
eselect fontconfig disable 10-hinting-full.conf   
###i## eselect fontconfig enable 70-no-bitmaps.conf   
eselect fontconfig disable 10-hinting-medium.conf   
###i## eselect fontconfig disable 10-hinting-full.conf   
eselect fontconfig disable 10-no-sub-pixel.conf   
###i## eselect fontconfig disable 10-hinting-medium.conf   
eselect fontconfig disable 10-sub-pixel-bgr.conf   
###i## eselect fontconfig disable 10-no-sub-pixel.conf   
eselect fontconfig disable 10-sub-pixel-vbgr.conf   
###i## eselect fontconfig disable 10-sub-pixel-bgr.conf   
eselect fontconfig disable 10-sub-pixel-vrgb.conf   
###i## eselect fontconfig disable 10-sub-pixel-vbgr.conf   
eselect fontconfig disable 10-unhinted.conf</console>
###i## eselect fontconfig disable 10-sub-pixel-vrgb.conf   
###i## eselect fontconfig disable 10-unhinted.conf}}
===Linux configuration ===
===Linux configuration ===


Same as default configuration except:
Same as default configuration except:
<console>eselect fontconfig enable 21-hinting-small-aquabase-slight.conf
{{console|body=
eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
###i## eselect fontconfig enable 21-hinting-small-aquabase-slight.conf
eselect fontconfig enable 22-hinting-courier-italic-slight.conf</console>
###i## eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
###i## eselect fontconfig enable 22-hinting-courier-italic-slight.conf}}
 
=== Infinality’s configuration ===
=== Infinality’s configuration ===


Same as default configuration except:
Same as default configuration except:
<console>eselect fontconfig enable 15-hinting-tt-instructed-full.conf
{{console|body=
eselect fontconfig enable 20-hinting-small-fonts-slight.conf   
###i## eselect fontconfig enable 15-hinting-tt-instructed-full.conf
eselect fontconfig enable 21-hinting-small-aquabase-slight.conf   
###i## eselect fontconfig enable 20-hinting-small-fonts-slight.conf   
eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
###i## eselect fontconfig enable 21-hinting-small-aquabase-slight.conf   
eselect fontconfig enable 22-hinting-courier-italic-slight.conf   
###i## eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
eselect fontconfig enable 25-hinting-small-arial-black-slight.conf</console>
###i## eselect fontconfig enable 22-hinting-courier-italic-slight.conf   
###i## eselect fontconfig enable 25-hinting-small-arial-black-slight.conf}}
 
=== Windows configuration ===
=== Windows configuration ===


Same as default except:
Same as default except:
<console>eselect fontconfig disable 10-autohint.conf
{{console|body=
eselect fontconfig disable 10-hinting-slight.conf   
###i## eselect fontconfig disable 10-autohint.conf
eselect fontconfig enable 10-hinting-full.conf   
###i## eselect fontconfig disable 10-hinting-slight.conf   
eselect fontconfig enable 15-hinting-non-tt-instructed-slight.conf   
###i## eselect fontconfig enable 10-hinting-full.conf   
eselect fontconfig enable 20-hinting-small-fonts-slight.conf   
###i## eselect fontconfig enable 15-hinting-non-tt-instructed-slight.conf   
eselect fontconfig enable 21-hinting-small-aquabase-slight.conf   
###i## eselect fontconfig enable 20-hinting-small-fonts-slight.conf   
eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
###i## eselect fontconfig enable 21-hinting-small-aquabase-slight.conf   
eselect fontconfig enable 22-hinting-courier-italic-slight.conf   
###i## eselect fontconfig enable 21-hinting-small-browallia-slight.conf   
eselect fontconfig enable 25-hinting-small-arial-black-slight.conf</console>
###i## eselect fontconfig enable 22-hinting-courier-italic-slight.conf   
=== OSX ===
###i## eselect fontconfig enable 25-hinting-small-arial-black-slight.conf}}
 
=== OSX configuration ===


Same as default configuration except:
Same as default configuration except:
<console>eselect fontconfig disable 10-autohint.conf
{{console|body=
eselect fontconfig disable 10-hinting.conf   
###i## eselect fontconfig disable 10-autohint.conf
eselect fontconfig disable 10-hinting-slight.conf   
###i## eselect fontconfig disable 10-hinting.conf   
eselect fontconfig enable 10-unhinted.conf   
###i## eselect fontconfig disable 10-hinting-slight.conf   
eselect fontconfig enable 15-hinting-tt-instructed-none.conf</console>
###i## eselect fontconfig enable 10-unhinted.conf   
== Freetype ==
###i## eselect fontconfig enable 15-hinting-tt-instructed-none.conf}}
Freetype can be configured through environment variables (see <tt>/etc/env.d/99lcdfilter</tt> 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 <tt>~/.bash_profile</tt>) or by sourcing the <tt>/usr/lib/ft-settings.sh</tt> script with the desired style in parameter (you can, of course, source the script from a startup file).


usage: source ft-settings.sh <style>
=== Freetype ===
Freetype can be configured through environment variables (see {{f|/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 {{f|~/.bash_profile}}) or by sourcing the {{f|/usr/lib/ft-settings.sh}} script with the desired style in parameter (you can, of course, source the script from a startup file).


<console>Possible styles:   
usage:
 
{{console|body=
###i## source /usr/lib/ft-settings.sh
Possible styles:   
   default      - Use default settings.  A compromise that should please most people   
   default      - Use default settings.  A compromise that should please most people   
   osx          - Simulate OSX rendering   
   osx          - Simulate OSX rendering   
Line 76: Line 109:
   shove        - Full stem snapping and tweaks without sharpening   
   shove        - Full stem snapping and tweaks without sharpening   
   sharpened    - Full stem snapping, tweaks, and Windows-style sharpening   
   sharpened    - Full stem snapping, tweaks, and Windows-style sharpening   
   infinality  - Settings used by Infinality</console>
   infinality  - Settings used by Infinality
== LibXft ==
}}
Only legacy programs still use libXft. The default configuration is defined in <tt>/usr/share/X11/app-defaults/Xft</tt>. It can be overriden on a per-user basis in the <tt>~/.Xresources</tt> or <tt>~/.Xdefaults</tt> files :
 
=== LibXft ===
Only legacy programs still use libXft. The default configuration is defined in {{f|/usr/share/X11/app-defaults/Xft}}. It can be overriden on a per-user basis in the {{f|~/.Xresources}} or {{f|~/.Xdefaults}} files:


<console>Xft.antialias:  1
{{file|name=~/.Xdefaults|desc= |body=
Xft.antialias:  1
Xft.autohint:  0   
Xft.autohint:  0   
Xft.dpi:        96   
Xft.dpi:        96   
Line 86: Line 122:
Xft.hintstyle:  hintfull   
Xft.hintstyle:  hintfull   
Xft.lcdfilter:  lcddefault   
Xft.lcdfilter:  lcddefault   
Xft.rgba:      rgb</console>
Xft.rgba:      rgb
}}


[[Category:HOWTO]]
[[Category:HOWTO]]

Revision as of 08:40, May 8, 2015

Console Only Fonts

Console fonts for tty's are easily configurable, and testable.

root # cd /usr/share/consolefonts/
root # ls #todisplaythefont files
root # setfont default8x9 #sets the 8x9 default font (this will be tiny, and you may not like it)
root # setfont #returns the system to the system default

Once you determine the font you like make it the system default:

   /etc/conf.d/consolefont - setting the system default font to the tiny text default8x9
consolefont="default8x9"

More console font packages exist in portage:

root # emerge media-fonts/terminus-font

The readme files in /usr/share/consolefonts contain valuable information, make sure to go through them.

Fontconfig

By default font configurations do not look ideal. This can be solved by rebuilding media-libs/freetype with the infinality USE flag, which applies the infinality patch set.

root # echo "media-libs/freetype infinality" >> /etc/portage/package.use
root # emerge -uN 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:

root # source /usr/lib/ft-settings.sh
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