install_fonts_v2.sh
- #!/usr/bin/env bash
- ### ---------------------------------------------------------
- ### Directories
- ### ---------------------------------------------------------
- NERD_BASE="/usr/share/fonts/nerdfonts"
- LOCAL_BASE="/usr/share/fonts/local"
- sudo mkdir -p "$NERD_BASE"
- sudo mkdir -p "$LOCAL_BASE"
- TMP_DIR="/tmp/font-installer"
- mkdir -p "$TMP_DIR"
- ### ---------------------------------------------------------
- ### Nerd Fonts (Mono TTF)
- ### ---------------------------------------------------------
- TTF_FONTS=(
- "0xProto"
- "AdwaitaMono"
- "BitstreamVeraSansMono"
- "CascadiaCode"
- "DejaVuSansMono"
- "IBMPlexMono"
- "Mononoki"
- "FiraCode"
- "Hack"
- "IntelOneMono"
- "JetBrainsMono"
- "Meslo"
- "Noto"
- "Recursive"
- "SpaceMono"
- )
- ### ---------------------------------------------------------
- ### Nerd Fonts (OTF)
- ### ---------------------------------------------------------
- OTF_FONTS=(
- "AtkinsonHyperlegibleMono"
- "CodeNewRoman"
- "Hermit"
- "GeistMono"
- )
- echo "Installing Nerd Fonts into: $NERD_BASE"
- ### ---------------------------------------------------------
- ### 1. Install TTF-based Nerd Fonts (Mono variants only)
- ### ---------------------------------------------------------
- for FONT in "${TTF_FONTS[@]}"; do
- ZIP="${TMP_DIR}/${FONT}.zip"
- FONT_DIR="${NERD_BASE}/${FONT}"
- URL="github.com
- echo "Downloading $FONT..."
- sudo wget -q --show-progress "$URL" -O "$ZIP"
- echo "Extracting *NerdFontMono*.ttf..."
- sudo mkdir -p "$FONT_DIR"
- sudo unzip -j "$ZIP" "*NerdFontMono*.ttf" -d "$FONT_DIR" >/dev/null
- done
- ### ---------------------------------------------------------
- ### 2. Install OTF-based Nerd Fonts
- ### ---------------------------------------------------------
- for FONT in "${OTF_FONTS[@]}"; do
- ZIP="${TMP_DIR}/${FONT}.zip}"
- FONT_DIR="${NERD_BASE}/${FONT}"
- URL="github.com
- echo "Downloading $FONT (OTF)..."
- sudo wget -q --show-progress "$URL" -O "$ZIP"
- echo "Extracting *.otf..."
- sudo mkdir -p "$FONT_DIR"
- sudo unzip -j "$ZIP" "*NerdFontMono*.otf" -d "$FONT_DIR" >/dev/null
- done
- ### ---------------------------------------------------------
- ### 3. Install Inter (Inter-*.ttf → /usr/share/fonts/local)
- ### ---------------------------------------------------------
- echo "Installing Inter..."
- INTER_ZIP="${TMP_DIR}/inter.zip"
- sudo wget -q --show-progress \
- "github.com \
- -O "$INTER_ZIP"
- sudo unzip -j "$INTER_ZIP" "extras/ttf/Inter-*.ttf" -d "$LOCAL_BASE/Inter" >/dev/null
- ### ---------------------------------------------------------
- ### 4. Install Office Code Pro (.ttf → /usr/share/fonts/local)
- ### ---------------------------------------------------------
- echo "Installing Office Code Pro..."
- OCP_ZIP="${TMP_DIR}/officecodepro.zip"
- sudo wget -q --show-progress \
- "https://globalfonts.pro/global_files/64677722a717112392dab2d4/office-code-pro.zip" \
- -O "$OCP_ZIP"
- sudo unzip -j "$OCP_ZIP" "*.ttf" -d "$LOCAL_BASE/OfficeCodePro" >/dev/null
- ### ---------------------------------------------------------
- ### 5. Install SF Mono (.otf → /usr/share/fonts/nerdfonts/SFMono)
- ### ---------------------------------------------------------
- echo "Installing SF Mono..."
- SF_DIR="${NERD_BASE}/SFMono"
- SF_ZIP="${TMP_DIR}/sfmono.zip"
- sudo mkdir -p "$SF_DIR"
- sudo wget -q --show-progress \
- "github.com \
- -O "$SF_ZIP"
- sudo unzip -j "$SF_ZIP" "*.otf" -d "$SF_DIR/SFMono" >/dev/null
- ### ---------------------------------------------------------
- ### Final Cleanup + Font Cache
- ### ---------------------------------------------------------
- echo "Cleaning up temporary files..."
- sudo rm -rf "$TMP_DIR"
- echo "Updating font cache..."
- sudo fc-cache -fv
- echo "All fonts installed successfully."
Pasted 2026-05-09 12:42:03
Short link:
Short link: