#!/bin/bash function install_font { if [ -e "$2" ] && [ ! -L "$2" ]; then echo "Already exists as real file: $2" elif [ -L "$2" ]; then echo "Skipped: $2" else echo "Linked font: $2" ln -s "$1" "$2" fi } IFS=$'\n' FONTS_CODING=$'Hack/Bold/complete/Knack Bold Nerd Font Complete Mono.ttf Hack/Regular/complete/Knack Regular Nerd Font Complete Mono.ttf Hack/BoldItalic/complete/Knack Bold Italic Nerd Font Complete Mono.ttf Hack/Italic/complete/Knack Italic Nerd Font Complete Mono.ttf' FONTS_FUTURA=$'Futura-Std-Bold_19042.ttf Futura-Std-Bold-Oblique_19041.ttf Futura-Std-Book_19044.ttf Futura-Std-Book-Oblique_19043.ttf' FONTS_OVERPASS=$'overpass-bold-italic.otf overpass-bold.otf overpass-extrabold-italic.otf overpass-extrabold.otf overpass-extralight-italic.otf overpass-extralight.otf overpass-heavy-italic.otf overpass-heavy.otf overpass-italic.otf overpass-light-italic.otf overpass-light.otf overpass-regular.otf overpass-semibold-italic.otf overpass-semibold.otf overpass-thin-italic.otf overpass-thin.otf' FONTS_GO=$'Go-Bold-Italic.ttf Go-Bold.ttf Go-Italic.ttf Go-Medium-Italic.ttf Go-Medium.ttf Go-Regular.ttf Go-Smallcaps-Italic.ttf Go-Smallcaps.ttf' # https://github.com/eosrei/emojione-color-font/ FONTS_VARIOUS=$'EmojiOneColor-SVGinOT.ttf' FONTS_DELETE=$'Sauce Code Pro Medium Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf Sauce Code Pro Bold Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf Sauce Code Pro Medium Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf Knack Bold Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf Knack Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf Knack BoldOblique Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf Knack RegularOblique Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf' if [ -e ~/.dot_is_server ]; then # Update from the repo echo "== Nerd fonts ======" SOURCE_DIR="/stuff/system/fonts/nerd-fonts/patched-fonts" DEST_DIR="/stuff/system/sync/fonts/active" if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then cd "$SOURCE_DIR" git pull --all while read -r FONT; do echo "Copied font: $FONT" cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR" done <<< "$FONTS_CODING" else echo "$SOURCE_DIR or $DEST_DIR not found, aborting" fi # Update from the repo echo "== Overpass ======" SOURCE_DIR="/stuff/system/fonts/Overpass/desktop-fonts/overpass" DEST_DIR="/stuff/system/sync/fonts/active" if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then cd "$SOURCE_DIR" git pull --all while read -r FONT; do echo "Copied font: $FONT" cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR" done <<< "$FONTS_OVERPASS" else echo "$SOURCE_DIR or $DEST_DIR not found, aborting" fi # Update from the repo echo "== Go ======" SOURCE_DIR="/stuff/system/fonts/Go/image/font/gofont/ttfs" DEST_DIR="/stuff/system/sync/fonts/active" if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then cd "$SOURCE_DIR" git pull --all while read -r FONT; do echo "Copied font: $FONT" cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR" done <<< "$FONTS_GO" else echo "$SOURCE_DIR or $DEST_DIR not found, aborting" fi echo "== DONE ======" else # Create symlinks if needed SOURCE_DIR="$HOME/Downloads/sync/fonts/active" DEST_DIR="$HOME/.local/share/fonts" if [ ! -e "$DEST_DIR" ]; then mkdir -p "$DEST_DIR" fi if [ -d "$SOURCE_DIR" ]; then cd "$DEST_DIR" while read -r FONT; do FONT_FILE=$(basename "${SOURCE_DIR}/${FONT}") install_font "$SOURCE_DIR/$FONT_FILE" "$DEST_DIR/$FONT_FILE" done <<< "$FONTS_CODING" while read -r FONT; do install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT" done <<< "$FONTS_FUTURA" while read -r FONT; do install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT" done <<< "$FONTS_OVERPASS" while read -r FONT; do install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT" done <<< "$FONTS_GO" while read -r FONT; do install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT" done <<< "$FONTS_VARIOUS" # Just to be sure, clear your font cache and restart Firefox if [ ! -e "${HOME}/.config/fontconfig" ]; then mkdir -p "${HOME}/.config/fontconfig" fi if [ ! -e "${HOME}/.config/fontconfig/fonts.conf" ]; then ln -s "${SOURCE_DIR}/fonts.conf" "${HOME}/.config/fontconfig/" fi fc-cache -f -v echo 'You might want to restart your browser' # Delete obsolete fonts while read -r FONT; do if [ -L "$DEST_DIR/$FONT" ]; then echo "Deleting symlink $DEST_DIR/$FONT" rm "$DEST_DIR/$FONT" fi done <<< "$FONTS_DELETE" else echo "$SOURCE_DIR not found, aborting" fi if [ -d "$HOME/.fonts" ]; then echo "Mind that you do have a ~/.fonts dir too, which might contain older versions" fi fi