Files
2026-06-27 16:41:35 -04:00

33 lines
1.2 KiB
Bash

# Ensure Fira Code is available for terminal apps (fontconfig)
_fonts_stamp="${XDG_STATE_HOME:-$HOME/.local/state}/fira-code-fonts"
_fonts_dir="$HOME/.local/share/fonts/FiraCode"
if ! fc-list 2>/dev/null | grep -qi 'fira code'; then
if [[ -f "$_fonts_stamp" ]] && ls "$_fonts_dir"/*.ttf &>/dev/null; then
fc-cache -f "$HOME/.local/share/fonts" 2>/dev/null
elif command -v dnf &>/dev/null; then
if sudo dnf install -y fira-code-fonts &>/dev/null; then
fc-cache -f 2>/dev/null
mkdir -p "${_fonts_stamp%/*}"
touch "$_fonts_stamp"
fi
fi
if ! fc-list 2>/dev/null | grep -qi 'fira code' \
&& command -v curl &>/dev/null && command -v unzip &>/dev/null; then
mkdir -p "$_fonts_dir"
_fonts_tmp=$(mktemp -d)
if curl -fsSL "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip" \
-o "$_fonts_tmp/FiraCode.zip" \
&& unzip -qo "$_fonts_tmp/FiraCode.zip" -d "$_fonts_tmp" \
&& cp -f "$_fonts_tmp/ttf/"*.ttf "$_fonts_dir/"; then
fc-cache -f "$HOME/.local/share/fonts" 2>/dev/null
mkdir -p "${_fonts_stamp%/*}"
touch "$_fonts_stamp"
fi
rm -rf "$_fonts_tmp"
unset _fonts_tmp
fi
fi
unset _fonts_stamp _fonts_dir