#!/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" "CascadiaCode" "CascadiaMono" "IBMPlexMono" "IntelOneMono" "JetBrainsMono" "Recursive" "RobotoMono" ) ### --------------------------------------------------------- ### Nerd Fonts (OTF) ### --------------------------------------------------------- OTF_FONTS=( "CodeNewRoman" ) 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="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${FONT}.zip" 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="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${FONT}.zip" 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 \ "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" \ -O "$INTER_ZIP" sudo unzip -j "$INTER_ZIP" "extras/ttf/Inter-*.ttf" -d "$LOCAL_BASE" >/dev/null ### --------------------------------------------------------- ### 4. Install Maple Mono (Inter-*.ttf → /usr/share/fonts/local) ### for editor use ### --------------------------------------------------------- echo "Installing Maple..." MAPLE_ZIP="${TMP_DIR}/maplemono.zip" sudo wget -q --show-progress \ "https://github.com/subframe7536/maple-font/releases/download/v7.9/MapleMono-TTF.zip" \ -O "$MAPLE_ZIP" sudo unzip -j "$MAPLE_ZIP" "*.ttf" -d "$LOCAL_BASE" >/dev/null ### --------------------------------------------------------- ### 5. Install Maple Mono NF (Inter-*.ttf → /usr/share/fonts/local) ### for terminal use, with icons ### --------------------------------------------------------- echo "Installing Maple NF..." MAPLE_NF_ZIP="${TMP_DIR}/maplemononf.zip" sudo wget -q --show-progress \ "https://github.com/subframe7536/maple-font/releases/download/v7.9/MapleMono-NF-unhinted.zip" \ -O "$MAPLE_NF_ZIP" sudo unzip -j "$MAPLE_NF_ZIP" "*.ttf" -d "$LOCAL_BASE" >/dev/null ### --------------------------------------------------------- ### 6. Install Microsoft Aptos (.ttf → /usr/share/fonts/local) ### --------------------------------------------------------- echo "Installing Microsoft Aptos Fonts..." MS_APTOS_ZIP="${TMP_DIR}/microsoft-aptos-font.zip" sudo wget -q --show-progress \ "https://download.microsoft.com/download/8/6/0/860a94fa-7feb-44ef-ac79-c072d9113d69/Microsoft%20Aptos%20Fonts.zip" \ -O "$MS_APTOS_ZIP" sudo unzip -j "$MS_APTOS_ZIP" "*.ttf" -d "$LOCAL_BASE" >/dev/null ### --------------------------------------------------------- ### 7. 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" >/dev/null ### --------------------------------------------------------- ### 8. 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 \ "https://github.com/epk/SF-Mono-Nerd-Font/archive/refs/tags/v18.0d1e1.0.zip" \ -O "$SF_ZIP" sudo unzip -j "$SF_ZIP" "*.otf" -d "$SF_DIR" >/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."