:warning: Deprecation Warning: On new versions of FreeType, the Infinality patches cause various rendering glitches and/or
segfaults (see issue #15). Only the fontconfig-infinality-remix
package will be updated going forward for a limited time.
Please consider alternatives to Infinality as using older versions of freetype
can be a security hazard.
If anyone with FreeType experience would like to maintain freetype-infinality-remix
please get in-touch!
The Infinality set of patches for the FreeType font rendering infrastructure has provided improved font rendering on Linux based desktops for over a decade. However, over time, porting the patches to the latest libraries has become more and more difficult as the two codebases diverge. Often times entire versions of FreeType are left unpatched, sometimes resulting in broken desktops and a poor user experience.
Until 4K monitors are the norm, good font smoothing should remain an important priority for the Linux desktop.
The Infinality Remix repository has been created to address this problem. This repository is based off the
infinality-ultimate-bundle
and has the following goals:
Porting, updating, and refactoring the Infinality patch set to remain compatible with upstream FreeType and Fontconfig.
Cleaning up and modularizing the Fontconfig configuration files.
Investigating and finding solutions to font rendering issues to improve the visual quality and consistency of text on Linux.
The following packages are provided:
Package | Description | Status |
---|---|---|
freetype2-infinality-remix | FreeType with the Infinality patch set. | Done |
fontconfig-infinality-remix | Fontconfig with the Infinality patch set and base configuration. | Done |
cairo-infinality-remix | Cairo with the Infinality patch set applied. | Done |
infinality-remix-config-base-fonts | Infinality Remix Fontconfig tweaks for popular fonts found in the official repositories and AUR. | TBD |
infinality-remix-config-web-fonts | Infinality Remix Fontconfig tweaks for popular Web fonts. | TBD |
Remove all previous Infinality FreeType, Fontconfig, and Cairo packages and replace with the stock libraries.
Remove any broken Infinality symlinks in /etc/fonts/conf.d/.
Install the FreeType, Fontconfig, and Cairo packages, in that order:
From the AUR:
yay -S freetype2-infinality-remix fontconfig-infinality-remix cairo-infinality-remix
From GitHub:
git clone https://github.com/pdeljanov/infinality-remix.git
cd infinality-remix/freetype2-infinality-remix
makepkg -sci
cd ../fontconfig-infinality-remix
makepkg -sci
cd ../cairo-infinality-remix
makepkg -sci
Ensure your desktop environment's font rendering settings are correct:
Logout and back in of your desktop session for changes to take effect immediately.
Verify through Xft that non-DE aware applications will use the recommended rendering settings. Run xrdb -query | grep Xft
, and your
output should be similar to:
Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
Xft.rgba: rgb
To change these settings, edit /etc/X11/xinit/xinitrc.d/xft-settings.sh
for global changes. These settings will be overwritten by your local ~/.Xresources
file, so you must remove it, or make sure the settings are the same. This setting only affects X11 applications.
The following fonts are recommended and should be installed for a good experience:
ttf-caladea
)ttf-carlito
)ttf-dejavu
)aur/ttf-impallari-cantora
)ttf-liberation
)noto-fonts
)ttf-opensans
)otf-overpass
)ttf-roboto
)tex-gyre-fonts
)ttf-ubuntu-font-family
)aur/ttf-courier-prime
)aur/ttf-gelasio-ib
)aur/ttf-merriweather
)aur/ttf-source-sans-pro-ibx
)aur/ttf-signika
)The following fonts look excellent, but are not under permissive licenses.
For more precise font rendering tweaks, edit /etc/X11/xinit/xinitrc.d/infinality-settings.sh
.
The INFINALITY_FT
variable may be used to set a preset style. Options are listed within infinality-settings.sh
. The ultimate3
setting is recommended, but ultimate5
gives a "macOS" look and pairs well with Apple's San Francisco system font.
The INFINALITY_FT_*
variables may be used to create your own style or tweak the selected preset style.
Changes made here will only apply to new desktop sessions.
Note: It is recommended you test your customizations with a QT or GTK application. See caveats below for more information.
ultimate[1-5]
styles, for more consistent rendering across applications.remix
set of FontConfig configuration files. The existing free
, ms
, and combi
sets remain, but remix
is the default.If you're an Infinality package maintainer and you just want the latest Infinality patch without this remix rubbish, simply apply the 0002-infinality-<VERSION>-<DATE>.patch
patch file.
~/.config/fontconfig/fonts.conf
~/.config/fontconfig/conf.d/
~/.xsettingsd
~/.Xresources
/etc/fonts/conf.d/local.conf
/etc/fonts/conf.d/
/etc/X11/xinit/xinitrc.d/xft-settings.sh
/etc/X11/xinit/xinitrc.d/infinality-settings.sh
Contributions are welcome on GitHub.
This repository is based off of the work of the original Infinality author and Boohoomil who maintained the infinality-ultimate bundle.