Wrigs

install_nerdfonts

May 9th, 2026 (edited)
5,285
0
Never
51
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.04 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. ### ---------------------------------------------------------
  4. ### Directories
  5. ### ---------------------------------------------------------
  6.  
  7. NERD_BASE="/usr/share/fonts/nerdfonts"
  8. LOCAL_BASE="/usr/share/fonts/local"
  9.  
  10. sudo mkdir -p "$NERD_BASE"
  11. sudo mkdir -p "$LOCAL_BASE"
  12.  
  13. TMP_DIR="/tmp/font-installer"
  14. mkdir -p "$TMP_DIR"
  15.  
  16.  
  17. ### ---------------------------------------------------------
  18. ### Nerd Fonts (Mono TTF)
  19. ### ---------------------------------------------------------
  20.  
  21. TTF_FONTS=(
  22.     "0xProto"
  23.     "AdwaitaMono"
  24.     "BitstreamVeraSansMono"
  25.     "CascadiaCode"
  26.     "DejaVuSansMono"
  27.     "IBMPlexMono"
  28.     "Mononoki"
  29.     "FiraCode"
  30.     "Hack"
  31.     "IntelOneMono"
  32.     "JetBrainsMono"
  33.     "Meslo"
  34.     "Recursive"
  35.     "RobotoMono"
  36.     "SpaceMono"
  37. )
  38.  
  39. ### ---------------------------------------------------------
  40. ### Nerd Fonts (OTF)
  41. ### ---------------------------------------------------------
  42.  
  43. OTF_FONTS=(
  44.     "AtkinsonHyperlegibleMono"
  45.     "CodeNewRoman"
  46.     "Hasklig"
  47.     "GeistMono"
  48. )
  49.  
  50. echo "Installing Nerd Fonts into: $NERD_BASE"
  51.  
  52. ### ---------------------------------------------------------
  53. ### 1. Install TTF-based Nerd Fonts (Mono variants only)
  54. ### ---------------------------------------------------------
  55.  
  56. for FONT in "${TTF_FONTS[@]}"; do
  57.     ZIP="${TMP_DIR}/${FONT}.zip"
  58.     FONT_DIR="${NERD_BASE}/${FONT}"
  59.     URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${FONT}.zip"
  60.  
  61.     echo "Downloading $FONT..."
  62.     sudo wget -q --show-progress "$URL" -O "$ZIP"
  63.  
  64.     echo "Extracting *NerdFontMono*.ttf..."
  65.     sudo mkdir -p "$FONT_DIR"
  66.     sudo unzip -j "$ZIP" "*NerdFontMono*.ttf" -d "$FONT_DIR" >/dev/null
  67. done
  68.  
  69.  
  70. ### ---------------------------------------------------------
  71. ### 2. Install OTF-based Nerd Fonts
  72. ### ---------------------------------------------------------
  73.  
  74. for FONT in "${OTF_FONTS[@]}"; do
  75.     ZIP="${TMP_DIR}/${FONT}.zip}"
  76.     FONT_DIR="${NERD_BASE}/${FONT}"
  77.     URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/${FONT}.zip"
  78.  
  79.     echo "Downloading $FONT (OTF)..."
  80.     sudo wget -q --show-progress "$URL" -O "$ZIP"
  81.  
  82.     echo "Extracting *.otf..."
  83.     sudo mkdir -p "$FONT_DIR"
  84.     sudo unzip -j "$ZIP" "*NerdFontMono*.otf" -d "$FONT_DIR" >/dev/null
  85. done
  86.  
  87.  
  88. ### ---------------------------------------------------------
  89. ### 3. Install Inter (Inter-*.ttf → /usr/share/fonts/local)
  90. ### ---------------------------------------------------------
  91.  
  92. echo "Installing Inter..."
  93. INTER_ZIP="${TMP_DIR}/inter.zip"
  94.  
  95. sudo wget -q --show-progress \
  96.   "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" \
  97.   -O "$INTER_ZIP"
  98.  
  99. sudo unzip -j "$INTER_ZIP" "extras/ttf/Inter-*.ttf" -d "$LOCAL_BASE/Inter" >/dev/null
  100.  
  101.  
  102. ### ---------------------------------------------------------
  103. ### 4. Install Office Code Pro (.ttf → /usr/share/fonts/local)
  104. ### ---------------------------------------------------------
  105.  
  106. echo "Installing Office Code Pro..."
  107. OCP_ZIP="${TMP_DIR}/officecodepro.zip"
  108.  
  109. sudo wget -q --show-progress \
  110.   "https://globalfonts.pro/global_files/64677722a717112392dab2d4/office-code-pro.zip" \
  111.   -O "$OCP_ZIP"
  112.  
  113. sudo unzip -j "$OCP_ZIP" "*.ttf" -d "$LOCAL_BASE/OfficeCodePro" >/dev/null
  114.  
  115.  
  116. ### ---------------------------------------------------------
  117. ### 5. Install SF Mono (.otf → /usr/share/fonts/nerdfonts/SFMono)
  118. ### ---------------------------------------------------------
  119.  
  120. echo "Installing SF Mono..."
  121. SF_DIR="${NERD_BASE}/SFMono"
  122. SF_ZIP="${TMP_DIR}/sfmono.zip"
  123.  
  124. sudo mkdir -p "$SF_DIR"
  125.  
  126. sudo wget -q --show-progress \
  127.   "https://github.com/epk/SF-Mono-Nerd-Font/archive/refs/tags/v18.0d1e1.0.zip" \
  128.   -O "$SF_ZIP"
  129.  
  130. sudo unzip -j "$SF_ZIP" "*.otf" -d "$SF_DIR/SFMono" >/dev/null
  131.  
  132.  
  133. ### ---------------------------------------------------------
  134. ### Final Cleanup + Font Cache
  135. ### ---------------------------------------------------------
  136.  
  137. echo "Cleaning up temporary files..."
  138. sudo rm -rf "$TMP_DIR"
  139.  
  140. echo "Updating font cache..."
  141. sudo fc-cache -fv
  142.  
  143. echo "All fonts installed successfully."
  144.  
Tags: fonts Linux
Advertisement