Find out what your default fonts and aliases are with fc-match:
for family in serif sans-serif monospace Arial Helvetica Verdana "Times New Roman" "Courier New"; do
echo -n "$family: "
fc-match "$family"
doneInstall Jet Brains Mono (patched) from Nerd Fonts.
- NOTES: check for new version, and if present then change the urls below.
mkdir -p $XDG_DATA_HOME/fonts/JetBrainsMono; \
cd $XDG_DATA_HOME/fonts/JetBrainsMono && \
curl -fLo "JetBrainsMonoNerdFontComplete-Bold.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Bold/complete/JetBrains%20Mono%20Bold%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-BoldItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/BoldItalic/complete/JetBrains%20Mono%20Bold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-ExtraBold.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/ExtraBold/complete/JetBrains%20Mono%20ExtraBold%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-ExtraBold-Italic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/ExtraBoldItalic/complete/JetBrains%20Mono%20ExtraBold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-ExtraLight.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/ExtraLight/complete/JetBrains%20Mono%20ExtraLight%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-ExtraLightItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/ExtraLightItalic/complete/JetBrains%20Mono%20ExtraLight%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-Italic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Italic/complete/JetBrains%20Mono%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-Light.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Light/complete/JetBrains%20Mono%20Light%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-LightItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/LightItalic/complete/JetBrains%20Mono%20Light%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-Medium.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Medium/complete/JetBrains%20Mono%20Medium%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-MediumItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/MediumItalic/complete/JetBrains%20Mono%20Medium%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-Regular.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Regular/complete/JetBrains%20Mono%20Regular%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-SemiBold.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/SemiBold/complete/JetBrains%20Mono%20SemiBold%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-SemiBoldItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/SemiBoldItalic/complete/JetBrains%20Mono%20SemiBold%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-Thin.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/Thin/complete/JetBrains%20Mono%20Thin%20Nerd%20Font%20Complete%20Mono.ttf && \
curl -fLo "JetBrainsMonoNerdFontComplete-ThinItalic.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/JetBrainsMono/Ligatures/ThinItalic/complete/JetBrains%20Mono%20Thin%20Italic%20Nerd%20Font%20Complete%20Mono.ttf && \
chmod 644 $XDG_DATA_HOME/fonts/JetBrainsMono/*
cd $HOME && fc-cache -frvInstall DejaVu fonts (patched) from Nerd Fonts.
- NOTES: check for new version, and if present then change the urls below.
mkdir -p $XDG_DATA_HOME/fonts/DejaVu; \
cd $XDG_DATA_HOME/fonts/DejaVu && \
curl -fLo "DejaVuSansMonoNerdFontComplete-BoldOblique.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/DejaVuSansMono/Bold-Italic/complete/DejaVu%20Sans%20Mono%20Bold%20Oblique%20Nerd%20Font%20Complete.ttf && \
curl -fLo "DejaVuSansMonoNerdFontComplete-Bold.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/DejaVuSansMono/Bold/complete/DejaVu%20Sans%20Mono%20Bold%20Nerd%20Font%20Complete.ttf && \
curl -fLo "DejaVuSansMonoNerdFontComplete-Oblique.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/DejaVuSansMono/Italic/complete/DejaVu%20Sans%20Mono%20Oblique%20Nerd%20Font%20Complete.ttf && \
curl -fLo "DejaVuSansMonoNerdFontComplete.ttf" https://github.com/ryanoasis/nerd-fonts/blob/v2.3.3/patched-fonts/DejaVuSansMono/Regular/complete/DejaVu%20Sans%20Mono%20Nerd%20Font%20Complete.ttf && \
chmod 644 $XDG_DATA_HOME/fonts/DejaVu/*
cd $HOME && fc-cache -rfvIf fc-cache doesn't generate new cache for installed fonts (JetBrainsMono, DejaVu), as shown in example below:
...
/home/$USER/.config/local/share/fonts/JetBrainsMono: caching, new cache contents: 0 fonts, 0 dirs
...
/home/$USER/.config/local/share/fonts/JetBrainsMono: skipping, looped directory detectedNOTES: also, you can check it by running fc-list | grep 'JetBrains', if it doesn't find anything, then follow the instructions below.
Then, you need to install these fonts (JetBrainsMono Nerd Font and DejaVuSansMono Nerd Font) mannualy from Nerd Fonts Download.
- Remove previous installed fonts:
rm -r $XDG_DATA_HOME/fonts/DejaVu/* && rm -r $XDG_DATA_HOME/fonts/JetBrainsMono/*. - Unzip downloaded archive:
mkdir -p Downloads/DejaVu | unzip Downloads/DejaVuSansMono.zip -d Downloads/DejaVu.- NOTES: repeat for both fonts.
- Remove unnecessary windows fonts:
rm -r Downloads/DejaVu/*Windows*.- NOTES: repeat for both fonts.
- Move fonts to our
XDG_DATA_HOMEfolders:mv -v Downloads/DejaVu/* $XDG_DATA_HOME/fonts/DejaVu.- NOTES: repeat for both fonts.
- Change permissions:
chmod 644 $XDG_DATA_HOME/fonts/DejaVu/*.- NOTES: repeat for both fonts.
- Cleare and generate new cache:
fc-cache -rfv. - Check if it works:
fc-list | grep 'JetBrains'.
Install additional fonts pacman -S noto-fonts adobe-source-code-pro-fonts adobe-source-han-sans-jp-fonts && sudo fc-cache -rfv.
Install windows and chrome os fallback fonts paru -S ttf-ms-fonts ttf-croscore.
You need some Math fonts, namely Latin Modern Math and STIX, to display MathML correctly. Install fonts: paru -S otf-stix otf-latinmodern-math. Run fc-cache -rfv to regenerate the fontconfig cache.
Default fonts configuration nvim .config/fontconfig/fonts.conf. I also, overwrite default ms-fonts by chrome-fonts.
NOTES: see How To Set Default Fonts and Font Aliases on Linux for more information.
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- Set preferred serif, sans serif, and monospace fonts -->
<alias>
<family>serif</family>
<prefer><family>DejaVuSansMono Nerd Font</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>DejaVuSansMono Nerd Font</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>DejaVuSansMono Nerd Font</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>JetBrainsMono Nerd Font Mono</family>
<family>JetBrainsMono Nerd Font</family>
</prefer>
</alias>
<!-- Aliases for commonly used MS fonts -->
<match>
<test name="family"><string>Arial</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Helvetica</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Verdana</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Tahoma</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Comic Sans MS</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Times New Roman</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Tinos</string>
</edit>
</match>
<match>
<test name="family"><string>Times</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Tinos</string>
</edit>
</match>
<match>
<test name="family"><string>Courier New</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Cousine</string>
</edit>
</match>
</fontconfig>
<!-- vim: set ft=xml: -->Run fc-cache -rfv to regenerate the fontconfig cache.
You can verify that the aliases have been set up correctly with fc-match:
for family in serif sans-serif monospace Arial Helvetica Verdana "Times New Roman" "Courier New"; do
echo -n "$family: "
fc-match "$family"
done