Last active
April 16, 2025 08:44
-
-
Save iacchus/5f694e726e80e4b9141f5ee082bfe848 to your computer and use it in GitHub Desktop.
Install all Google Fonts on Linux (Debian/Ubuntu etc.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env sh | |
# Original author: Michalis Georgiou <[email protected]> | |
# Modified by Andrew http://www.webupd8.org <[email protected]> | |
# Current version by Kassius Iacchus https://github.com/iacchus/ | |
# Depends on: `wget` | |
# | |
# Install `wget` on Debian/Ubuntu with: | |
# apt install wget | |
# Usage: | |
# | |
# 0. Copy the contents of this script to a text file named, | |
# for example, "install_fonts.sh". | |
# | |
# 1. Make this file executable with the command: | |
# chmod +x install_fonts.sh | |
# | |
# 2. Run it with: | |
# ./install_fonts.sh | |
_wgeturl="https://github.com/google/fonts/archive/main.tar.gz" | |
_gf="google-fonts" | |
echo "Connecting to Github server to download fonts..." | |
wget $_wgeturl -O $_gf.tar.gz | |
echo "Extracting the downloaded archive..." | |
tar -zxvf $_gf.tar.gz | |
echo "Creating the /usr/share/fonts/truetype/$_gf folder" | |
sudo mkdir -p /usr/share/fonts/truetype/$_gf | |
echo "Installing all .ttf fonts in /usr/share/fonts/truetype/$_gf" | |
find $PWD/fonts-main/ -name "*.ttf" -exec sudo install -m644 {} /usr/share/fonts/truetype/google-fonts/ \; || echo "An error occured, please run this script again." | |
echo "Updating the font cache" | |
fc-cache -f | |
echo "Done. Now you can delete the tarball file $_gf.tar.gz if you wish." |
Does this work on arch/manjaro?
Does this work on arch/manjaro?
Yes, it is distribution-independent; just ensure that you have wget installed
@Gauley123 you can install wget
on archlinux/manjaro with:
sudo pacman -Syu wget
It works, I use archlinux too.
Thanks, it's works great!
Excellent Script. Should be the #1 search result.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
updated the script:
Directory Structure
Introduced a new variable _directory to represent the main directory where fonts are extracted (i.e., fonts-main), replacing the previously hardcoded path (google-fonts).
Adjusted all commands to work with the updated directory structure.
Font Installation
Replaced the old font installation method (which directly copied all .ttf files) with a more refined method that categorizes fonts based on metadata present in the METADATA.pb files.
Organized the installation so that fonts are installed in subdirectories corresponding to their categories (e.g., DISPLAY, HANDWRITING, etc.).
Error Handling
Redirected potential error messages during the font installation process (using 2>/dev/null) to discard overwrite warnings. This approach avoids showing warnings when the script attempts to install the same font under multiple categories.
Cleaned Up Feedback
Updated the echoed feedback messages to provide clearer instructions and information on the steps being taken.