Fonts
Related articles
From Wikipedia: "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.
Contents
- 1 Font formats
- 2 Installation
- 3 Console fonts
- 4 Font packages
- 4.1 Latin script
- 4.2 Non-latin scripts
- 4.3 Emoji and symbols
- 4.4 Math
- 4.5 Other operating system fonts
- 5 Fallback font order with X11
- 6 Font alias
- 7 Tips and tricks
- 8 See also
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.
Common extensions
-
bdf
andbdf.gz
– bitmap fonts, bitmap distribution format and gzip compressedbdf
-
pcf
andpcf.gz
– bitmaps, portable compiled font and gzip compressedpcf
-
psf
,psfu
,psf.gz
andpsfu.gz
– bitmaps, PC screen font, PC screen font Unicode and the gzipped versions (not compatible with X.Org) -
pfa
andpfb
– outline fonts, PostScript font ASCII and PostScript font binary. PostScript fonts carry built-in printer instructions. -
ttf
– outline, TrueType font. Originally designed as a replacement for the PostScript fonts. -
otf
– outline, OpenType font. TrueType with PostScript typographic instructions.
For most purposes, the technical differences between TrueType and OpenType can be ignored, some fonts with a ttf
extension are actually OpenType fonts.
Other formats
The typesetting application, TeX, and its companion font software, Metafont, render characters using their own methods. Some of the file extensions used for fonts by these two programs are *pk
, *gf
, mf
and vf
.
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 using:
$ pacman -Ss font
Or to search for ttf
fonts only:
$ pacman -Ss 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; simply taking an existing package as template should work well. To learn about how to modify it for your font, please refer to Creating packages.
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 the FcPatternFormat(3) manual.
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. Fonts can alternately be installed manually as well.
To install fonts system-wide (available for all users), move the folder to the /usr/share/fonts/
directory. The files need to be readable by every user, use chmod to set the correct permissions (i.e. at least 0444
for files and 0555
for directories). To install fonts for only a single user, use ~/.local/share/fonts
(~/.fonts/
is now deprecated).
For 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.
Then update the fontconfig font cache: (usually unnecessary as software using the fontconfig library do 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"
Console fonts
By default, the virtual console uses the kernel built-in font with a CP437 character set,[1] but this can be easily changed.
The Linux console uses UTF-8 encoding by default, but because the standard VGA-compatible framebuffer is used, a console font is limited to either a standard 256, or 512 glyphs. If the font has more than 256 glyphs, the number of colours is reduced from 16 to 8. In order to assign correct symbol to be displayed to the given Unicode value, a special translation map, often called unimap, is needed. Nowadays most of the console fonts have the unimap built-in, historically it had to be loaded separately.
The kbd package provides tools to change virtual console font and font mapping. Available fonts are saved in the /usr/share/kbd/consolefonts/
directory, those ending with .psfu or .psfu.gz have a Unicode translation map built-in.
Keymaps, the connection between the key pressed and the character used by the computer, are found in the subdirectories of /usr/share/kbd/keymaps/
, see Keyboard configuration in console for details.
Preview and temporary changes
$ showconsolefont
shows a table of glyphs or letters of a font.
setfont
temporarily change the font if passed a font name (in /usr/share/kbd/consolefonts/
) such as
$ setfont lat2-16 -m 8859-2
Font names are case-sensitive. With no parameter, setfont
returns the console to the default font.
Persistent configuration
The FONT
variable in /etc/vconsole.conf
is used to set the font at boot, persistently for all consoles. See man 5 vconsole.conf
for details.
For displaying characters such as Č, ž, đ, š or Ł, ę, ą, ś using the font lat2-16.psfu.gz
:
/etc/vconsole.conf
... FONT=lat2-16 FONT_MAP=8859-2
It means that second part of ISO/IEC 8859 characters are used with size 16. You can change font size using other values (e.g. lat2-08
). For the regions determined by 8859 specification, look at the Wikipedia table.
To use the specified font in early userspace, use the consolefont
hook in /etc/mkinitcpio.conf
. See Mkinitcpio#HOOKS for more information.
If the fonts seems to not change on boot, or change only temporarily, it is most likely that they got reset when graphics driver was initialized and console was switched to framebuffer. To avoid this, load your graphics driver earlier. See for example Kernel mode setting#Early KMS start, [3] or other ways to setup your framebuffer before /etc/vconsole.conf
is applied.
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, see the project or Wikipedia pages for detail.
Github user Ternstor has created a python script that generates HTML documents with PNG images of all the fonts in the AUR and the official repositories: [4].
Latin script
Monospaced
Here are some suggestions. Every user has their own favorite, so experiment to find yours. If you are in a hurry, you read Dan Benjamin's blog post: Top 10 Programming Fonts.
Here is a long list of fonts by Trevor Lowing: http://www.lowing.org/fonts/.
A comparison with images on Slant: What are the best programming fonts?
And a Stack Overflow question with some images: Recommended fonts for programming
TrueType
- Andalé Mono (ttf-ms-fontsAUR)
- Anonymous Pro (ttf-anonymous-pro, included in ttf-google-fonts-gitAUR)
- Bitstream Vera Mono (ttf-bitstream-vera)
- Consolas (ttf-vista-fontsAUR) - Windows programming font
- Courier New (ttf-ms-fontsAUR)
- Cousine (ttf-croscore) - Chrome/Chromium OS replacement for Courier New (metric-compatible)
- DejaVu Sans Mono (ttf-dejavu) - Unicode
- Droid Sans Mono (ttf-droid, included in ttf-google-fonts-gitAUR)
- Envy Code R (ttf-envy-code-rAUR)
- Fantasque Sans Mono (ttf-fantasque-sansAUR or ttf-fantasque-sans-gitAUR)
- Fira Mono (ttf-fira-mono)
- FreeMono (ttf-freefont) - Unicode
- Hack] (ttf-hack)
- Inconsolata (ttf-inconsolata, included in ttf-google-fonts-gitAUR) - Excellent programming font
- Inconsolata-g (ttf-inconsolata-gAUR) - adds some programmer-friendly modifications
- Liberation Mono (ttf-liberation) - Replacement for Courier New, based on Cousine (metric-compatible)
- Lucida Typewriter (included in package jreAUR)
- Monaco (ttf-monacoAUR) - Popular programming font on OSX/Textmate
- Monofur (ttf-monofurAUR)
- Roboto (ttf-roboto)
- Source Code Pro (adobe-source-code-pro-fonts)
Bitmap
- Default 8x16
- Dina (dina-font)
- Gohu (gohufontAUR)
- Lime (artwiz-fonts)
- ProFont (profont)
- Proggy Programming Fonts (proggyfontsAUR)
- Tamsyn (tamsyn-font)
- Terminus (terminus-font)
- Tewi (bdf-tewi-gitAUR)
- Unifont (most extensive Unicode coverage of any font) (bdf-unifont)
Sans-serif
- Andika (ttf-andikaAUR)
- Arial (ttf-ms-fontsAUR)
- Arial Black (ttf-ms-fontsAUR)
- Arimo (ttf-croscore) - Chrome/Chromium OS replacement for Arial (metric-compatible)
- Calibri (ttf-vista-fontsAUR)
- Candara (ttf-vista-fontsAUR)
- Comic Sans (ttf-ms-fontsAUR)
- Corbel (ttf-vista-fontsAUR)
- DejaVu Sans (ttf-dejavu) - Unicode
- Droid Sans (ttf-droid, included in ttf-google-fonts-gitAUR)
- FreeSans (ttf-freefont) - Unicode
- Impact (ttf-ms-fontsAUR)
- Liberation Sans (ttf-liberation) Replacement for Arial, based on Arimo (metric-compatible)
- Linux Biolinum (ttf-linux-libertine)
- Lucida Sans (ttf-ms-fontsAUR)
- Microsoft Sans Serif (ttf-ms-fontsAUR)
- PT Sans (ttf-google-fonts-gitAUR) - 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic
- Source Sans Pro (adobe-source-sans-pro-fonts)
- Tahoma (ttf-tahomaAUR)
- Trebuchet (ttf-ms-fontsAUR)
- Ubuntu Font Family (ttf-ubuntu-font-family)
- Verdana (ttf-ms-fontsAUR)
Serif
- Cambria (ttf-vista-fontsAUR)
- Constantia (ttf-vista-fontsAUR)
- DejaVu Serif (ttf-dejavu) - Unicode
- Droid Serif (ttf-droid, included in ttf-google-fonts-gitAUR)
- EB Garamond (otf-eb-garamondAUR)
- FreeSerif (ttf-freefont) - Unicode
- Gentium (ttf-gentium) - Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet
- Georgia (ttf-ms-fontsAUR)
- Liberation Serif (ttf-liberation) - Replacement for Times New Roman, based on Tinos (metric-compatible)
- Linux Libertine (ttf-linux-libertine) - Unicode: Latin, Greek, Cyrillic, Hebrew
- Times New Roman (ttf-ms-fontsAUR)
- Tinos (ttf-croscore) - Chrome/Chromium OS replacement for Times New Roman (metric-compatible)
Unsorted
- font-bh-ttf - X.Org Luxi fonts
- ttf-cheapskate - Font collection from dustismo.com
- ttf-junicode - Junius font containing almost complete medieval latin script glyphs
- ttf-mph-2b-damase - Covers full plane 1 and several scripts
- xorg-fonts-type1 - IBM Courier and Adobe Utopia sets of PostScript fonts
- noto-fonts - Google Noto TTF 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, droid, 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
Braille
- ttf-ubraille - Font containing Unicode symbols for braille
Chinese, Japanese, Korean, Vietnamese
Pan-CJK
- adobe-source-han-sans-otc-fonts - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look.
- 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
- adobe-source-han-sans-cn-fonts - Simplified Chinese OpenType/CFF fonts
- adobe-source-han-sans-tw-fonts - Traditional Chinese OpenType/CFF fonts
- ttf-arphic-ukai - Kaiti (brush stroke) Unicode font (enabling anti-aliasing is suggested)
- ttf-arphic-uming - Mingti (printed) Unicode font
- opendesktop-fonts - New Sung font, previously is ttf-fireflysung package
- wqy-microhei - A Sans-Serif style high quality CJKV outline font.
- wqy-zenhei - Hei Ti Style (sans-serif) Chinese Outline font embedded with bitmapped Song Ti (also supporting Japanese (partial) and Korean characters).
- wqy-bitmapfont - Bitmapped Song Ti (serif) Chinese font
- ttf-i.bmingAUR - CJK serif font that emphasis on an old-style typeface
- ttf-twAUR - Kai and Song traditional Chinese font from the Ministry of Education of Taiwan
Japanese
- adobe-source-han-sans-jp-fonts - Japanese OpenType/CFF fonts
- otf-ipafont - Formal style Japanese Gothic (sans-serif) and Mincho (serif) fonts set; one of the highest quality open source font. Default of openSUSE-ja.
- ttf-hanazono - A free Japanese kanji font, style Mincho (serif).
- ttf-sazanami - Japanese free TrueType font. This is outdated and not maintained any more, but may be defined as a fallback font on several environments.
- ttf-koruriAUR - Japanese TrueType font obtained by mixing ttf-mplusAUR and Open Sans
- ttf-monapoAUR - Japanese fonts to show 2channel Shift JIS art properly.
- ttf-mplusAUR - Modern Gothic style Japanese outline fonts. It includes all of Japanese Hiragana/Katakana, Basic Latin, Latin-1 Supplement, Latin Extended-A, IPA Extensions and most of Japanese Kanji, Greek, Cyrillic, Vietnamese with 7 weights (proportional) or 5 weights (monospace).
- ttf-vlgothicAUR - Japanese Gothic fonts. Default of Debian/Fedora/Vine Linux
Korean
- adobe-source-han-sans-kr-fonts - Korean OpenType/CFF fonts
- ttf-baekmuk - Collection of Korean TrueType fonts
- spoqa-han-sansAUR - Source Han Sans customized by Spoqa
- ttf-d2codingAUR - D2Coding fixed width TrueType font made by Naver
- ttf-nanumAUR - Nanum series TrueType fonts
- ttf-nanumgothic_codingAUR - Nanum series fixed width TrueType 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
- culmusAUR - Nice collection of free Hebrew fonts
Indic
- ttf-freebanglafont - Font for Bangla
- ttf-indic-otf - Indic OpenType Fonts collection (containing ttf-freebanglafont), provides the character U+0CA0 "ಠ"
- lohit-fontsAUR - Indic TrueType fonts from Fedora Project (containing Oriya Fonts and more)
- ttf-devanagarifontsAUR - Devanagari TrueType fonts (contains 283 fonts)
- ttf-gurmukhi-fonts_sikhnetAUR - TrueType Gurmukhi fonts (gurbaniwebthick,prabhki)
- ttf-gurmukhi_punjabiAUR - TTF Gurmukhi / Punjabi (contains 252 fonts)
- ttf-gujrati-fontsAUR - TTF Gujarati fonts (Avantika,Gopika,Shree768)
- ttf-kannada-fontAUR - Kannada, the language of Karnataka state in India
- ttf-lklugAUR - Sinhala Unicode font
- ttf-tamilAUR - Tamil Unicode fonts
- ttf-urdufontsAUR - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu
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.
- sina-fontsAUR - Sina Pardazesh Co. Persian font series.
- gandom-fontsAUR, parastoo-fontsAUR, sahel-fontsAUR, samim-fontsAUR, shabnam-fontsAUR, tanha-fontsAUR, vazir-fontsAUR, vazir-code-fontsAUR - Beautiful Persian fonts made by Ali Rasti Kerdar.
- 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-tlwg - Collection of scalable Thai fonts
- ttf-laoAUR - Lao TTF font (Phetsarath_OT)
- ttf-lao-fontsAUR - Lao TTF fonts, both Unicode and non-Unicode for Windows
Tibeto-Burman
- ttf-tibetan-machine - Tibetan Machine TTFont
- ttf-my-padukAUR - Padauk font for Myanmar/Birmania
- ttf-myanmar-fontsAUR - 121 Fonts from myordbok.com
Emoji and symbols
A section of the Unicode standard is designated for pictographic characters called "emoji".
- noto-fonts-emoji - Google's own emoji font, like on Android or Google Hangouts. Some newer additions to Unicode appear to render poorly with Noto fonts.
- ttf-symbola - provides many Unicode symbols, including emoji, in outline style.
- ttf-emojione-colorAUR - a color and B&W emoji SVGinOT font built from EmojiOne.
- ttf-twemoji-colorAUR - Twitter's open-sourced emoji glyphs.
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: ttf-freefont, ttf-arphic-uming, and ttf-indic-otf.
Math
- font-mathematica - Mathematica fonts by Wolfram Research, Inc.
- texlive-core and texlive-fontsextra contain many math fonts such as Latin Modern Math and STIX Fonts. See TeX Live#Fonts for configuration.
- otf-stixAUR - A standalone, more recent version of STIX
- otf-latin-modernAUR, otf-latinmodern-mathAUR - Improved version of Computer Modern fonts as used in LaTeX
- ttf-computer-modern-fontsAUR, otf-cm-unicodeAUR - Computer Modern (of TeX fame)
- ttf-mathtypeAUR - MathType fonts
Other operating system fonts
- ttf-mac-fontsAUR - Apple MacOS TrueType fonts
See Metric-compatible fonts, which lists available alternatives for Microsoft fonts.
Fallback font order with X11
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>
You can add a section for sans-serif and monospace as well. For more informations, 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
Lists 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
Set terminal font on-the-fly
For terminal emulators that use Xresources
, 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-matplotlib) uses its own font cache, so after updating fonts, be sure to remove $HOME/.matplotlib/fontList.cache
,
$HOME/.cache/matplotlib/fontList.cache
, $HOME/.sage/matplotlib-1.2.1/fontList.cache
, etc. so it will regenerate its cache and find the new fonts [5].