Skip to content

Instantly share code, notes, and snippets.

@naranyala
Created July 18, 2025 07:35
Show Gist options
  • Select an option

  • Save naranyala/d791b014c96024a78d8000217e97b17f to your computer and use it in GitHub Desktop.

Select an option

Save naranyala/d791b014c96024a78d8000217e97b17f to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -euo pipefail
# πŸ—ƒοΈ Ensure required directories exist
mkdir -p ~/.local/share/fonts ~/.config/fontconfig/conf.d
# 🎨 Install emoji font
echo "πŸ“₯ Installing Noto Color Emoji font..."
sudo apt update
sudo apt install -y fonts-noto-color-emoji
# πŸ› οΈ Set up font fallback for emoji
EMOJI_CONF=~/.config/fontconfig/conf.d/01-emoji.conf
echo "πŸ“ Configuring font fallback..."
cat > "$EMOJI_CONF" <<EOF
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family"><string>Emoji</string></test>
<edit name="family" mode="assign"><string>Noto Color Emoji</string></edit>
</match>
</fontconfig>
EOF
# πŸ”  Coding fonts (install to ~/.local/share/fonts)
FONT_URLS=(
"https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"
"https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip"
"https://github.com/microsoft/cascadia-code/releases/download/v2404.23/CascadiaCode-2404.23.zip"
)
echo "πŸ“₯ Downloading and extracting coding fonts..."
TMPDIR=$(mktemp -d)
cd "$TMPDIR"
for URL in "${FONT_URLS[@]}"; do
ZIP=$(basename "$URL")
wget -q "$URL" -O "$ZIP"
unzip -q "$ZIP"
done
# 🎯 Move font files to ~/.local/share/fonts
find . -type f \( -iname "*.ttf" -o -iname "*.otf" \) -exec mv {} ~/.local/share/fonts/ \;
# 🧹 Clean up
cd ~
rm -rf "$TMPDIR"
# πŸ”„ Refresh font cache
echo "πŸ”„ Rebuilding font cache..."
fc-cache -fv
echo "βœ… Emoji and coding fonts installed successfully!"
echo "πŸ§ͺ Try: echo -e \"πŸ˜€ πŸš€ 🎯\" in your terminal to test emoji support."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment