mirror of
https://github.com/aquatix/dotfiles.git
synced 2025-12-06 22:55:10 +01:00
165 lines
5.7 KiB
Bash
Executable File
165 lines
5.7 KiB
Bash
Executable File
#!/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/Hack Bold Nerd Font Complete Mono.ttf
|
|
Hack/Regular/complete/Hack Regular Nerd Font Complete Mono.ttf
|
|
Hack/BoldItalic/complete/Hack Bold Italic Nerd Font Complete Mono.ttf
|
|
Hack/Italic/complete/Hack Italic Nerd Font Complete Mono.ttf
|
|
FiraCode/Bold/complete/Fira Code Bold Nerd Font Complete Mono.ttf
|
|
FiraCode/Regular/complete/Fira Code Regular Nerd Font Complete Mono.ttf
|
|
FiraCode/BoldItalic/complete/Fira Code Bold Italic Nerd Font Complete Mono.ttf
|
|
FiraCode/Italic/complete/Fira Code 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
|
|
Knack Bold Nerd Font Complete Mono.ttf
|
|
Knack Regular Nerd Font Complete Mono.ttf
|
|
Knack Bold Italic Nerd Font Complete Mono.ttf
|
|
Knack Italic Nerd Font Complete Mono.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"
|
|
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
|
|
# 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"
|
|
# Just to be sure, clear and refresh your font cache and restart Firefox
|
|
fc-cache -f -v
|
|
echo 'You might want to restart your browser'
|
|
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
|