Fonts
Fonts are a core part of the system and are necessary in order to represent text on a display. For background on font-related concepts, terminology, and systems (e.g. Unicode), refer to the Fonts/Background page.
Font installation in Gentoo is handled much like other distributions. It can be as easy as copying the font file into the proper directory. Please refer to the Fontconfig article for information about use and management of fonts in a GUI context (e.g. X or a Wayland compositor).
A list of software for working with fonts is available on the Fonts/Software page.
Home directory
When installing fonts on a local basis, each user can create a .local/share/fonts directory in their home directory. This directory can then be filled with font files:
user $
mkdir -p ~/.local/share/fonts
user $
cp ~/Downloads/Inconsolata.otf ~/.local/share/fonts
Historically, the ~/.fonts directory was used to store fonts on a per-user basis. The modern equivalent is ~/.local/share/fonts.
Fonts can also be installed in a subfolder of the ~/.local/share/fonts directory.
Check in a few applications to see if the newly copied font has been made available. A terminal emulator or an office program should work nicely for this purpose.
Globally available
System administrators (those with root privileges) can copy fonts into the system's /usr/local/share/fonts directory. This will make fonts available to any user on the system.
root #
cp /home/larry/Downloads/Inconsolata.otf /usr/local/share/fonts
Console font
OpenRC
In order to use a specific font in the console, set the consolefont variable in /etc/conf.d/consolefont to the name of a file found in /usr/share/consolefonts/ (without the .psfu.gz suffix).
consolefont="lat9w-16"
Next add consolefont init script to boot runlevel:
root #
rc-update add consolefont boot
media-fonts/terminus-font is a good option; It has fonts with sizes from 12 to 32 pixels making it suitable for HD screens or providing an option for larger console fonts.
systemd
Configuration of the systemd virtual console is done using the /etc/vconsole.conf configuration file.
To set a specific font set the FONT to the name of a file found in /usr/share/consolefonts/ (without the .psfu.gz suffix). The FONT_MAP is set to the name of a file found in /usr/share/unimaps/ (also without any suffix).
FONT=lat9w-16
FONT_MAP=8859-15
New configuration can be reloaded by:
root #
systemctl restart systemd-vconsole-setup.service
It is also possible to override the FONT and FONT_MAP using vconsole.font= and vconsole.font_map= kernel command line parameters.
GUI font
To configure fonts for use in graphical applications see the Fontconfig article.
Font installation to support viewing more scripts
Emoji and symbols
root #
emerge --ask media-fonts/noto-emoji
Once installed, Noto Emoji can be configured selected for use as a fallback font (used when a glyph does not exist in the selected font) for emoji symbols using the following command:
root #
eselect fontconfig enable 75-noto-emoji-fallback.conf
Currently available through the GURU overlay:
root #
emerge --ask media-fonts/symbola
Non-Latin scripts
Gentoo doesn't install many fonts by default; if a character needs to be displayed that the system does not have a glyph for it will be rendered using the .notdef character also known as tofu this is typically:
- a little square which is often empty, ☐
- a box with an X in it, ☒
- a box with a question mark in it, ⍰
- a box containing the unicode code point
The web browser used to view this page renders it as .
The Noto (no tofu) font family provides a single (if large) package that contains a consistent set of glyphs covering most commonly used languages.
If support for additional glyphs is required consider installing a selection of the following packages:
Language | Package(s) |
---|---|
Bengali | media-fonts/lohit-bengali media-fonts/noto |
Japanese | media-fonts/mikachan-font-ttf media-fonts/noto-cjk |
Korean | media-fonts/alee-fonts media-fonts/noto-cjk |
Persian | media-fonts/farsi-fonts media-fonts/noto |
Tamil | media-fonts/lohit-tamil media-fonts/noto |
Thai | media-fonts/thaifonts-scalable media-fonts/noto |
Additional package considerations
media-fonts/fonts-meta (Meta package for fonts to cover most needs):
root #
emerge --ask media-fonts/fonts-meta
Microsoft's TrueType media-fonts/corefonts:
root #
emerge --ask media-fonts/corefonts
Configuring fonts in applications
The way programs handle fonts can be different for every program. But most applications follow a certain convention. They accept the name of the font as a variable for their font configuration. The following command will give the list of all fonts that are currently available to the user issuing it (all fonts in ~/.local/share/fonts, /usr/local/share/fonts and /usr/share/fonts).
user $
fc-list
... /usr/share/fonts/FiraCode-Medium.ttf: Fira Code,Fira Code Medium:style=Medium,Regular ...
Here, the first field after the :
(Fira Code
in this case) is the family of the font that should be used in the configuration of most applications.
See also
- About Picking fonts in the Fontconfig docs
- Localization/Guide/The_Euro_symbol — how to display the Euro symbol (€) for the console and in X.
External resources
- https://fontlibrary.org/ - A font distribution website that beautifully displays fonts.