#!/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."
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|0 👍
/0 👎