Fonts
From Wikipedia:Computer font: "A computer font (or font) is an electronic data file containing a set of glyphs, characters, or symbols such as dingbats."
Note that certain font licenses may impose some legal limitations.
Font formats
Most computer fonts used today are in either bitmap or outline data formats.
- Bitmap fonts
- Consist of a matrix of dots or pixels representing the image of each glyph in each face and size.
- Outline or vector fonts
- Use Bézier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.
Bitmap formats
- Bitmap Distribution Format (BDF) by Adobe
- Portable Compiled Format (PCF) by Xorg
-
PC Screen Font (PSF) used by the Kernel for console fonts, not supported by Xorg (for Unicode PSF files the extension is
psfu
)
These formats can also be gzipped. See #Bitmap for the available bitmap fonts.
Outline formats
- PostScript fonts by Adobe – has various formats, e.g: Printer Font ASCII (PFA) and Printer Font Binary (PFB)
-
TrueType by Apple and Microsoft (file extension:
ttf
) -
OpenType by Microsoft, built on TrueType (file extensions:
otf
,ttf
)
For most purposes, the technical differences between TrueType and OpenType can be ignored.
Other formats
The typesetting application TeX and its companion font software, Metafont, traditionally renders characters using its own methods. Some file extensions used for fonts from these two programs are *pk
, *gf
, mf
and vf
. Modern versions can also use TrueType and OpenType fonts.
FontForge (fontforge), a font editing application, can store fonts in its native text-based format, sfd
, spline font database.
The SVG format also has its own font description method.
Installation
There are various methods for installing fonts.
Pacman
Fonts and font collections in the enabled repositories can be installed using pacman.
Available fonts may be found by querying packages (e.g. for font
or ttf
).
Creating a package
You should give pacman the ability to manage your fonts, which is done by creating an Arch package. These can also be shared with the community in the AUR. The packages to install fonts are particularly similar; see Font packaging guidelines.
The family name of a font file can be aquired with the use of fc-query
for example: fc-query -f '%{family[0]}\n' /path/to/file
. The formatting is described in FcPatternFormat(3).
Manual installation
The recommended way of adding fonts that are not in the repositories to your system is described in #Creating a package. This gives pacman the ability to remove or update them at a later time.
Alternatively, fonts can be installed manually:
- For a single user, install fonts to
~/.local/share/fonts/
.- In many cases this suffices, unless you run graphical applications as other users.
- In the past
~/.fonts/
was used, but is now deprecated.
- For system-wide (all users) installation, place your fonts under
/usr/local/share/fonts/
.- You may need to create the directory first;
mkdir -p /usr/local/share/fonts
. -
/usr/share/fonts/
is under the purview of the package manager, and should not be modified manually.
- You may need to create the directory first;
The creation of a subdirectory structure is up to the user, and varies among Linux distributions. For clarity, it is good to keep each font in its own directory. Fontconfig will search its default paths recursively, ensuring nested files get picked up.
An example structure might be:
/usr/local/share/fonts/ ├── otf │ └── SourceCodeVariable │ ├── SourceCodeVariable-Italic.otf │ └── SourceCodeVariable-Roman.otf └── ttf ├── AnonymousPro │ ├── Anonymous-Pro-B.ttf │ ├── Anonymous-Pro-I.ttf │ └── Anonymous-Pro.ttf └── CascadiaCode ├── CascadiaCode-Bold.ttf ├── CascadiaCode-Light.ttf └── CascadiaCode-Regular.ttf
The font files need to have sufficient read permissions for all users, i.e. at least chmod 444
for files, and 555
for directories.
For the Xserver to load fonts directly (as opposed to the use of a font server), the directory for your newly added font must be added with a FontPath entry. This entry is located in the Files section of your Xorg configuration file (e.g. /etc/X11/xorg.conf
or /etc/xorg.conf
). See #Older applications for more detail.
Finally, update the fontconfig cache (usually unnecessary as software using the fontconfig library does this):
$ fc-cache
Older applications
With older applications that do not support fontconfig (e.g. GTK 1.x applications, and xfontsel
) the index will need to be created in the font directory:
$ mkfontscale $ mkfontdir
Or to include more than one folder with one command:
$ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash
Or if fonts were installed in a different sub-folders under the e.g. /usr/share/fonts
:
$ for dir in * ; do if [ -d "$dir" ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash
At times the X server may fail to load the fonts directory and you will need to rescan all the fonts.dir
files:
# xset +fp /usr/share/fonts/misc # Inform the X server of new directories # xset fp rehash # Forces a new rescan
To check that the font(s) is included:
$ xlsfonts | grep fontname
This can also be set globally in /etc/X11/xorg.conf
or /etc/X11/xorg.conf.d
.
Here is an example of the section that must be added to /etc/X11/xorg.conf
. Add or remove paths based on your particular font requirements.
# Let X.Org know about the custom font directories Section "Files" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/75dpi" FontPath "/usr/share/fonts/cantarell" FontPath "/usr/share/fonts/cyrillic" FontPath "/usr/share/fonts/encodings" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/truetype" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/util" EndSection
Pango Warnings
When Pango is in use on your system it will read from fontconfig to sort out where to source fonts.
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common' (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'
If you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the ttf-liberation fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.
# fc-cache
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs /usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs /usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs /usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs /usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs /var/cache/fontconfig: cleaning cache directory fc-cache: succeeded
You can test for a default font being set like so:
$ fc-match
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
Font packages
This is a selective list that includes many font packages from the AUR along with those in the official repositories. Fonts are tagged "Unicode" if they have wide Unicode support.
Bitmap
- Default 8x16
- Berry (pcf-spectrum-berryAUR) – 8px
- Dina (dina-font) – 6pt, 8pt, 9pt, 10pt, monospaced, based on Proggy
- Efont (efont-unicode-bdfAUR) – 10px, 12px, 14px, 16px, 24px, normal, bold and italic
- Gohu (gohufontAUR) – 11px, 14px, normal and bold
- Lime (artwiz-fontsAUR)
- ProFont (ttf-profont-iixAUR) – 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal
- Proggy (proggyfontsAUR) – Has different variants
- Tamsyn (tamsyn-font)
- Terminus (terminus-font)
- Tewi (bdf-tewi-gitAUR)
- Unifont (most extensive Unicode coverage of any font) (bdf-unifont)
Works with Pango 1.44:
- ProFont (profont-otbAUR) – OpenType Bitmap (OTB) variant of ProFont
- Misc Fixed xorg-fonts-misc-otbAUR
- Gohufont (gohufont-otbAUR)
- Cozette (cozette-otbAUR)
- Terminus (terminus-font)
- More OTB fonts on the AUR
Latin script
Families
Packages providing a base font set:
- Bitstream Vera (ttf-bitstream-vera) – Includes sans-serif, serif, and monospaced fonts. Bitstream Vera Sans is metrically compatible with Verdana.
- Croscore fonts (ttf-croscore) – Metric-compatible fonts for Helvetica, Times, and Courier, shipped with Chrome OS
- DejaVu fonts (ttf-dejavu) – Bitstream Vera modified for greater Unicode coverage
- Droid (ttf-droid) – Default font for older Android versions with wide Unicode coverage including CJK but not symbols and emojis
- GNU FreeFont (gnu-free-fonts) – Includes sans-serif, serif, and monospaced fonts, most Latin characters are from URW fonts (e.g., Nimbus Roman, Nimbus Sans), good Unicode coverage but does not include CJK
- IBM Plex (ttf-ibm-plex) – Serif, sans-serif, condensed sans-serif and monospace with true italics
- Liberation fonts (ttf-liberation) – Metric-compatible fonts for Helvetica, Times, and Courier
- Linux Libertine (ttf-linux-libertine) – Serif (Libertine) and sans serif (Biolinum) fonts with large Unicode coverage
- Microsoft fonts (ttf-ms-win11AUR) – Windows 11 fonts (Windows 11 installation or installation medium needed)
- Noto fonts (noto-fonts) – Google font family with full Unicode coverage if installed with its emoji and CJK optional dependencies
Packages not providing a base font set:
- B612 (ttf-b612AUR) – Open source font family (sans and mono) sponsored by Airbus, designed for comfort of reading on aircraft cockpit screens
- Luxi fonts (font-bh-ttfAUR) – X.Org font family similar to Lucida
- Roboto (ttf-roboto) – Default font for newer Android versions where it is complemented by Noto fonts for languages not supported like CJK
- TeX Gyre fonts (tex-gyre-fonts) – Metric-compatible fonts for Helvetica, Times, and Courier by the Polish GUST association of TeX users. They have their own math companion fonts, see #Math.
- Ubuntu font family (ttf-ubuntu-font-family)
Legacy Microsoft font packages:
- Microsoft fonts (ttf-ms-fontsAUR) – Andalé Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman
- Vista fonts (ttf-vista-fontsAUR) – Consolas, Calibri, Candara, Corbel, Cambria, Constantia
Monospaced
Fonts supporting programming ligatures are identified below with a ⟶ sign. For more monospaced fonts, also see #Bitmap and #Families.
- Anonymous Pro (ttf-anonymous-pro, included in ttf-google-fonts-gitAUR)
- Cascadia Code (ttf-cascadia-code) ⟶ – Designed to enhance the look of the Windows Terminal, with programming ligatures, released by Microsoft under the Open Font License.
- Courier Prime (ttf-courier-primeAUR) – Courier alternative which has been supplemented by a sans serif font and a version optimized for programming, released under the Open Font License.
- Envy Code R (ttf-envy-code-rAUR) – Font designed for programmers
- Fantasque Sans Mono (ttf-fantasque-sans-mono, otf-fantasque-sans-mono)
- Fira Mono (ttf-fira-mono, otf-fira-mono) – Font optimized for small screens and adopted by Mozilla for the Firefox OS
- Fira Code (ttf-fira-code) ⟶ – Extension of Fira Mono with programming ligatures for common programming multi-character combinations
- Hack (ttf-hack) - Open source monospaced font, used as the default in KDE Plasma
- Hermit (otf-hermit) - A font for programmers, by a programmer
- Inconsolata (ttf-inconsolata, included in ttf-google-fonts-gitAUR) – Designed for source code listing, inspired by Consolas and Letter Gothic
- Inconsolata-g (ttf-inconsolata-gAUR) – Adds some programmer-friendly modifications
- Iosevka (ttc-iosevka) ⟶ – Slender sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono, designed to be the ideal font for programming; it supports programming ligatures and over 2000 latin, greek, cyrillic, phonetic and PowerLine glyphs
- JetBrains Mono (ttf-jetbrains-mono) ⟶ – Free and open-source font developed by JetBrains
- Lucida Typewriter (included in package jreAUR)
- Menlo (ttf-mesloAUR) – Customized version of Apple's Menlo Regular font for OS X with larger vertical gap spacing
- Monaco (ttf-monacoAUR) – Proprietary font designed by Apple for OS X
- Monofur (ttf-monofur)
- Mononoki (ttf-mononokiAUR) – A font for programming and code review
- Source Code Pro (adobe-source-code-pro-fonts, included in ttf-google-fonts-gitAUR)
Relevant websites:
- Trevor Lowing's font list
- Slant: What are the best programming fonts?
- Stack Overflow: Recommended fonts for programming
- Programming Fonts - Test Drive
- Programming Fonts Compare
Sans-serif
- Andika (ttf-andikaAUR)
- Cantarell (cantarell-fonts) – Default font supplied with GNOME, it is required by the GNOME and GTK 3 related packages
- DMCA Sans Serif (ttf-dmcasansserifAUR) – General purpose sans serif font metric-compatible with Microsoft Consolas
- Fira Sans (ttf-fira-sans, otf-fira-sans) – Sans serif font designed by Erik Spiekermann for Mozilla and the Firefox OS. Fira Mono and Fira Code are monospaced companions of Fira Sans (see #Monospaced)
- FreeSans (gnu-free-fonts) – A common substitute for Helvetica and Arial, see #Families
- Inter UI (inter-font) – Designed for user interfaces
- Jost* (otf-jostAUR) – An open-source typeface based on Futura
- Liberation Sans (ttf-liberation) – A common substitute for Helvetica and Arial, see #Families
- Montserrat (montserrat-otfAUR) – An open source font that shares similarities with Gotham and Proxima Nova
- Nunito (ttf-nunitoAUR) – An open source font with rounded terminal, hence shares similarities with Gotham Rounded and Proxima Soft
- Open Sans (ttf-opensans) – Sans serif font commissioned by Google, based on Droid sans but slightly wider.
- PT Sans (ttf-google-fonts-gitAUR) – 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic
- Source Sans (adobe-source-sans-fonts) – Open source sans serif font from Adobe with a design based on News Gothic and Franklin Gothic
- Tahoma (Wine Replacement) (ttf-tahomaAUR) – Open source substitute for Tahoma developed by the Wine project. It was created because many Windows applications expected Tahoma to be available
Serif
- Bitstream Charter (ttf-bitstream-charterAUR, otf-bitstream-charterAUR) – Originally a commercial font designed by Matthew Carter and shares similarities with Georgia. A version was released under a free license and later converted to modern formats (provided as the aforementioned packages).
- Bodoni* (otf-bodoniAUR) – An open-source Bodoni revival
- Crimson (otf-crimson-textAUR) – An open-source font that shares similarities with Minion
- EB Garamond (ebgaramond-otfAUR) – An open-source Garamond revival, the aforementioned package is the version developed by Octavio Pardo
- FreeSerif (gnu-free-fonts) – Visually similar to Times New Roman but metrically different, see #Families
- Gentium (gentium-plus-font) – Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet
- Heuristica (ttf-heuristicaAUR) – Based on a version of Utopia that was released under a free license
- Liberation Serif (ttf-liberation) – Metric-compatible with Times New Roman but visually distinct, see #Families
- Libre Baskerville (ttf-librebaskervilleAUR) – An open-source Baskerville revival designed by Impallari Type
- Libre Caslon (otf-libre-caslonAUR) – An open-source Caslon revival designed by Impallari Type
- Linux Libertine (ttf-linux-libertine) – Developed as a substitute of Times New Roman, but different both visually and metrically (the metric differences are more notable for italic and bold fonts)
- TeX Gyre Termes (tex-gyre-fonts) – Visually similar to Times New Roman (but there are some minor metric differences), see #Families
- Tinos (ttf-croscore) – Metric-compatible with Times New Roman but visually distinct (and looks similar to Liberation Serif), see #Families
Unsorted
- ttf-cheapskateAUR – Font collection from dustismo.com
- ttf-junicode – Junius font containing almost complete medieval latin script glyphs
- ttf-mph-2b-damaseAUR – Covers full plane 1 and several scripts
- xorg-fonts-type1 – IBM Courier and Adobe Utopia sets of PostScript fonts
- all-repository-fontsAUR – Meta package for all fonts in the official repositories.
- ttf-google-fonts-gitAUR – A huge collection of free fonts (including Ubuntu, Inconsolata, Roboto, etc.) - Note: Your font dialog might get very long as >100 fonts will be added.
Non-latin scripts
Ancient Scripts
- ttf-ancient-fontsAUR – Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts
Arabic
- ttf-amiriAUR – A classical Arabic typeface in Naskh style poineered by Amiria Press
- ttf-arabeyes-fontsAUR – Collection of free Arabic fonts
- ttf-qurancomplex-fontsAUR – Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah
- ttf-sil-lateefAUR – Unicode Arabic font from SIL
- ttf-sil-scheherazadeAUR – Unicode Arabic font from SIL (Alternative for Traditional Arabic font)
Bengali
Read Localization/Bengali#Fonts for details.
Braille
- ttf-ubrailleAUR – Font containing Unicode symbols for braille
Chinese, Japanese, Korean, Vietnamese
Pan-CJK
- Adobe Source Han fonts – Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look.
- adobe-source-han-sans-otc-fonts – Sans fonts
- adobe-source-han-serif-otc-fonts – Serif fonts
- noto-fonts-cjk – Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look. It is currently a rebadged version of adobe-source-han-sans-otc-fonts.
Chinese
See Localization/Chinese#Fonts.
Japanese
See Localization/Japanese#Fonts.
Korean
See Localization/Korean#Fonts.
Vietnamese
- ttf-hannom – Vietnamese TrueType font for chữ Nôm characters
Cyrillic
See also #Latin script.
- ttf-paratypeAUR – Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license
- otf-russkopisAUR – A free OpenType cursive font for Cyrillic script
Greek
Almost all Unicode fonts contain the Greek character set (polytonic included). Some additional font packages, which might not contain the complete Unicode set but utilize high quality Greek (and Latin, of course) typefaces are:
- otf-gfsAUR – Selection of OpenType fonts from the Greek Font Society
- ttf-mgopenAUR – Professional TrueType fonts from Magenta
Hebrew
- opensiddur-hebrew-fontsAUR – Large collection of Open-source licensed Hebrew fonts. There are also few Latin, Greek, Cyrillic, Arabic, and Amharic.
- culmusAUR – Nice collection of free Hebrew fonts.
- alefbetAUR – 2 Hebrew fonts (at the moment): the commonly used "David Libre", and the handwriting font "Gveret Levin".
- ttf-ms-fontsAUR – contains Arial and other fonts.
Indic
Khmer
- ttf-khmer – Font covering glyphs for Khmer language
- Hanuman (ttf-google-fonts-gitAUR)
Mongolic and Tungusic
- ttf-abkaiAUR – Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)
Persian
- persian-fontsAUR – Meta package for installing all Persian fonts in AUR.
- borna-fontsAUR – Borna Rayaneh Co. Persian B font series.
- iran-nastaliq-fontsAUR – A free Unicode calligraphic Persian font.
- iranian-fontsAUR – Iranian-Sans and Iranian-Serif Persian font family.
- ir-standard-fontsAUR – Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts.
- persian-hm-ftx-fontsAUR – A Persian font series derived from X Series 2, Metafont and FarsiTeX fonts with Kashida feature.
- persian-hm-xs2-fontsAUR – A Persian font series derived from X Series 2 fonts with Kashida feature.
- gandom-fontsAUR, parastoo-fontsAUR, sahel-fontsAUR, samim-fontsAUR, shabnam-fontsAUR, tanha-fontsAUR, vazir-fontsAUR, vazir-code-fontsAUR – Beautiful Persian fonts made by Saber RastiKerdar.
- ttf-yasAUR – The Yas Persian font series (with hollow zero).
- ttf-x2AUR – Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).
Tai–Kadai
- fonts-tlwgAUR – Collection of scalable Thai fonts
- ttf-laoAUR – Lao TTF font (Phetsarath_OT)
- ttf-lao-fontsAUR[broken link: package not found] – Lao TTF fonts, both Unicode and non-Unicode for Windows
Tibeto-Burman
- ttf-tibetan-machine – Tibetan Machine TTFont
- ttf-myanmar-fontsAUR[broken link: package not found] – 121 Fonts from myordbok.com
Emoji and symbols
A section of the Unicode standard is designated for pictographic characters called "emoji".
Emoji fonts come in different formats: CBDT/CBLC (Google), SBIX (Apple), COLR/CPAL (Microsoft), SVG (Mozilla/Adobe).
Emojis should work without any configuration once you have at least one emoji font installed of supported format. Emoji font fallback according to the standard requires extra code to handle emoji.
For the discovery and input of Emoji see List of applications/Utilities#Text input.
Software | CBDT/CBLC | SBIX | COLR/CPAL | SVG | Emoji font fallback |
---|---|---|---|---|---|
Freetype | Yes | Yes | Yes | No | – |
Pango | Freetype | Yes | |||
WebKitGTK | Freetype | Yes | |||
Qt | Freetype | No [1] [2] [3] | |||
Chromium | Freetype | Yes | |||
Firefox | Freetype | Yes | No, see Firefox#Font troubleshooting for workaround. |
CBDT/CBLC:
- noto-fonts-emoji – Google's open-source Emoji 14.0.
- ttf-joypixels – EmojiOne creator's proprietary Emoji 13.1.
- ttf-twemojiAUR – Twitter's open-source Emoji 13.0.
SVG:
- otf-openmojiAUR – German University of Design in Schwäbisch Gmünd open-source Emoji 13.0.
- ttf-twemoji-colorAUR – Twitter's open-source Emoji 13.0.
Outline only:
- ttf-symbolaAUR – provides many Unicode symbols, including emoji.
Kaomoji are sometimes referred to as "Japanese emoticons" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: gnu-free-fonts, ttf-arphic-uming, and ttf-indic-otf.
Math
- Computer Modern (ttf-cm-unicodeAUR, otf-cm-unicodeAUR)
- Computer Modern (otf-latin-modern, otf-latinmodern-math) – Improved version used in LaTeX
- MathType fonts (ttf-mathtypeAUR[broken link: package not found])
- STIX fonts (otf-stixAUR) – Released under a royalty-free license and designed to be a math compansion of Times New Roman. The current version is called STIX Two Math.
- TeX Gyre math fonts (tex-gyre-math-fontsAUR) – Math compansions of TeX Gyre fonts (see #Families). Notably, TeX Gyre Termes Math is a math compansion of Times New Roman.
- XITS fonts (otf-xitsAUR) – A fork of STIX and is therefore a math compansion of Times New Roman. XITS and STIX Two Math have similar levels of completeness for mathematical symbols and alphabets [5], but do have some visual differences.
Additionally, texlive-core and texlive-fontsextra contain many math fonts such as Latin Modern Math and STIX fonts. See TeX Live#Making fonts available to Fontconfig for configuration.
Other operating system fonts
- ttf-mac-fontsAUR - Apple MacOS TrueType fonts
Fallback font order
Fontconfig automatically chooses a font that matches the current requirement. That is to say, if one is looking at a window containing English and Chinese for example, it will switch to another font for the Chinese text if the default one does not support it.
Fontconfig lets every user configure the order they want via $XDG_CONFIG_HOME/fontconfig/fonts.conf
.
If you want a particular Chinese font to be selected after your favorite Serif font, your file would look like this:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>serif</family> <prefer> <family>Your favorite Latin Serif font name</family> <family>Your Chinese font name</family> </prefer> </alias> </fontconfig>
- If you use a Chinese locale, set
LC_LANG
tound
to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font. - After changing the configuration run
fc-match -a monospace | head
to verify your fallback font is set correctly.
You can add a section for sans-serif and monospace as well. For more information, have a look at the fontconfig manual.
See also Font configuration#Replace or set default fonts.
Font alias
There are several font aliases which represent other fonts in order that applications may use similar fonts. The most common aliases are: serif
for a font of the serif type (e.g. DejaVu Serif); sans-serif
for a font of the sans-serif type (e.g. DejaVu Sans); and monospace
for a monospaced font (e.g. DejaVu Sans Mono). However, the fonts which these aliases represent may vary and the relationship is often not shown in font management tools, such as those found in KDE and other desktop environments.
To reverse an alias and find which font it is representing, run:
$ fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
In this case, DejaVuSansMono.ttf
is the font represented by the monospace alias.
Tips and tricks
List all installed fonts
You can use the following command to list all installed Fontconfig fonts that are available on your system.
$ fc-list
List installed fonts for a particular language
Applications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command fc-list :lang="two letter language code"
. For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:
$ fc-list -f '%{file}\n' :lang=ar
/usr/share/fonts/TTF/FreeMono.ttf /usr/share/fonts/TTF/DejaVuSansCondensed.ttf /usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf /usr/share/fonts/TTF/DejaVuSansMono.ttf /usr/share/fonts/TTF/FreeSerif.ttf
List installed fonts for a particular Unicode character
To search for monospace fonts supporting a particular Unicode codepoint:
$ fc-match -s monospace:charset=1F4A9
Set terminal font on-the-fly
For terminal emulators that use X resources, e.g. xterm or rxvt-unicode, fonts can be set by using escape sequences. Specifically, echo -e "\033]710;$font\007"
to change the normal font (*font
in ~/.Xresources
), and replace 710
with 711
, 712
, and 713
to change the *boldFont
, *italicFont
, and *boldItalicFont
, respectively.
$font
uses the same syntax as in ~/.Xresources
and can be anything the terminal emulator will support. (Example: xft:dejavu sans mono:size=9
)
Application-specific font cache
Matplotlib (python-matplotlib or python2-matplotlibAUR) uses its own font cache, so after updating fonts, be sure to remove ~/.matplotlib/fontList.cache
, ~/.cache/matplotlib/fontList.cache
, ~/.sage/matplotlib-1.2.1/fontList.cache
, etc. so it will regenerate its cache and find the new fonts [6][dead link 2021-11-10 ⓘ].
BiDirectional text in terminal
Run BiCon (bicon-gitAUR) in order to display correctly Arabic and Hebrew text inside the terminal.
See also
- State of Text Rendering
- Font Library - Fonts under Free licenses
- Fonts on screenshots.debian.net