Get Out Of Infinality Part 1

This is what I do to my systems to get them up to date with freetype 2.7, which invalidates1) the infinality patches. This assumes you have multilib installed. Remove references to lib32- packages if you don't.

Step 0: Update system and get rid of orphans to make sure things are clean. Make sure you have an alternative wm like windowmaker installed so freetype2 problems aren't deadly.

Step 1: Get Rid of Infinality

Remove infinality from etc/pacman.conf.

pacman -S --asdeps cairo fontconfig freetype2 jre8-openjdk-headless jre8-openjdk lib32-cairo lib32-fontconfig lib32-freetype2 jdk8-openjdk jre8-openjdk jre8-openjdk-headless
pacman -R ibfonts-meta-base ibfonts-meta-extended ibfonts-meta-extended-lt
pacman -S --asdeps ttf-dejavu gsfonts cantarell-fonts 
pacman -R `pacman -Qq | grep -- -ib$`
pacman -S --asdeps gdk-pixbuf2 lib32-gdk-pixbuf2

At this point, all of the infinality stuff should be gone. If you need a webbrowser open to read this doc, reopen it now.

Step 2: Font Replacement

Google Fonts

I'd like to install the full google-fonts archive, but the PKGBUILD sometimes doesn't list all the fonts it provides. Keep that in mind when you install it.

aurget -S ttf-google-fonts-git

Also, as of right now, the google fonts package has problems with the Khand style fonts. if you don't already have ttf-freefont installed, now would be a good time.

fonts-meta-*

There's a set of package that provides the font packages infinality used to provide. Install it now.

aurget -S --deps fonts-meta-base
# As of right now, brings in: ttf-heuristica-1.0.2-2 ttf-courier-prime-1.203-2 fonts-meta-base-1-2 
# And from pacman: ttf-liberation-2.00.1-7  ttf-symbola-9.00-1
aurget -S --deps fonts-meta-extended-lt
# ttf-carlito-20130920-1 ttf-impallari-cantora-1.001-1 ttf-caladea-20130214-1 fonts-meta-extended-lt-2-1
# And from pacman: ttf-impallari-cantora-1.001-1 tex-gyre-fonts-2.005-3

Fonts I Like

This is mostly stuff to cover all of my bases with the Unicode set. I'm on wikipedia linguistics pages a lot these days. However, there are some fonts that are just nice to have, like the standard DOS vga font.

pacman -S --needed ttf-liberation ttf-baekmuk ttf-bitstream-vera ttf-cheapskate ttf-hannom ttf-junicode ttf-sazanami ttf-ubraille   ttf-gentium ttf-hanazono  ttf-linux-libertine-g  ttf-symbola
aurget -S --deps ttf-inconsolata-g otf-quivira ttf-ibm-vga8 ttf-envy-code-r

Step 3: /etc/fonts/local.conf

Now we need local definition magic to make it look nice. I got it from e002e7057435f02cc7894b9e748c5671.

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match target="font">
    <edit name="rgba" mode="assign">
      <const>rgb</const>
    </edit>
 
    <!-- Should be enabled by default -->
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
 
    <!-- Should be disabled by default
    <edit name="autohint" mode="assign">
      <bool>false</bool>
    </edit>-->
 
    <!-- Should be enabled by default -->
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
 
    <edit name="hintstyle" mode="assign">
      <const>hintslight</const>
    </edit>
 
    <edit name="lcdfilter" mode="assign">
      <const>lcddefault</const>
    </edit>
  </match>
 
  <!-- Replacements from http://bohoomil.com/doc/05-fonts/ (until ibfonts-meta-extended) -->
  <alias>
    <family>serif</family>
    <prefer><family>Heuristica</family></prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer><family>Noto Sans</family></prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer><family>Liberation Mono</family></prefer>
  </alias>
  <alias>
    <family>fantasy</family>
    <prefer><family>Signika</family></prefer>
  </alias>
  <alias>
    <family>cursive</family>
    <prefer><family>TeX Gyre Chorus</family></prefer>
  </alias>
  <match>
    <test name="family"><string>Arial</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Arial Narrow</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Sans Narrow</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Book Antiqua</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>TeX Gyre Bonum</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Calibri</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Carlito</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Cambria</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Caladea</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>New Century Schoolbook</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>TeX Gyre Schola</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Comic Sans MS</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Signika</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Consolas</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Droid Sans Mono Slashed</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Constantia</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Merriweather</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Corberl</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Merriweather Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Courier New</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Courier Prime</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Geneva</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Noto Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Georgia</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Gelasio</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Helvetica Narrow</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Sans Narrow</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Helvetica Neue</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Open Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Impact</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Oswald</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>ITC Zapf Chancery</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>TeX Gyre Chorus</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Calligraphy</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Quintessential</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Handwriting</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Quintessential</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Casual</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>CantoraOne</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Console</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Droid Sans Mono</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Sans Typewriter</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Sans Mono</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Fax</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Luxi Mono</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Lucida Sans / Grande</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Droid Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Palatino Linotype</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>TeX Gyre Pagella</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>SegoeUI</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>WeblySleek UI</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Symbol</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Symbola</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Tahoma</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans Condensed</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Times New Roman</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Liberation Serif</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Trebuchet MS</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Ubuntu</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans</string>
    </edit>
  </match>
  <match>
    <test name="family"><string>Windings</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Symbola</string>
    </edit>
  </match>
</fontconfig>

Step 4: Wrapping Up

At this point, you should have the fonts that sort of approximate what I had under infinality. There are some kerning changes, but they mostly don't bother me. I can tweak it as time goes on. So, you'll want to quit out of windowmaker or whatever and go back into GNOME. Once you've verified everything is nice, you can purge the pacman cache to get some space back.

FIXME: Make sure you've got the right kind of LCD hinting.
1)
and incorporates some of