dotfiles/gui/font.sh

84 lines
2.6 KiB
Bash
Executable File

#!/bin/sh
set -e
DIR=$(dirname "$(readlink -f "$0")")
. "$DIR/../env.sh"
log 'Setting up fonts'
install_wqy_microhei() {
# official wqy-microhei package doesn't fix the Korean Glyphs stacking bug
# https://code.google.com/p/chromium/issues/detail?id=233851
# use debian package instead
DEB_PKG_NAME=fonts-wqy-microhei_0.2.0-beta-3_all.deb
if [ ! -f "/tmp/$DEB_PKG_NAME" ]; then
wget http://mirrors.163.com/debian/pool/main/f/fonts-wqy-microhei/$DEB_PKG_NAME -O /tmp/$DEB_PKG_NAME
fi
ar p "/tmp/$DEB_PKG_NAME" data.tar.xz | sudo tar Jxv -C /
}
case "$UNAMEA" in
*Ubuntu*)
# fonts
sudo apt install -y \
fonts-urw-base35 \
fonts-cascadia-code \
fonts-wqy-microhei \
fonts-symbola \
fonts-dejavu-core \
gucharmap
;;
*artix*)
sudo pacman -S --noconfirm --needed \
noto-fonts noto-fonts-cjk noto-fonts-emoji
esac
# install hermit nerd font
install_nerdfont () {
grep -F "$*" /usr/local/share/fonts/nerdfont && return
ORIGIN_NAME=$1
PATCHED_PAT=$2
VERSION=$3
NAME=$ORIGIN_NAME-$VERSION.zip
LOCAL_REPO_PATH=/tmp/nerd-font/$ORIGIN_NAME
# shortcircuit if font already in system
fc-list | grep -F "$PATCHED_PAT" | grep -i nerd && return
# clone single branch from gitee
rm -rf "$LOCAL_REPO_PATH"
git clone --single-branch --branch "$ORIGIN_NAME" --depth 1 \
https://gitee.com/klesh/nerd-fonts.git \
"$LOCAL_REPO_PATH"
sudo 7z x -x!'*Windows*' -aoa "$LOCAL_REPO_PATH/$NAME" -o/usr/local/share/fonts
sudo chmod +rx /usr/local/share/fonts
echo "$*" | sudo tee -a /usr/local/share/fonts/nerdfont
rm -rf "$LOCAL_REPO_PATH"
}
install_nerdfont Agave agave v2.1.0
#install_nerdfont Hermit Hurmit v2.1.0
#install_nerdfont CascadiaCode Caskaydia v2.1.0
#install_nerdfont DaddyTimeMono DaddyTimeMono v2.1.0
#log 'Setting up font rendering'
#sudo ln -sf /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d
#sudo ln -sf /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
#sudo ln -sf /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
#sudo cp "$DIR/font/freetype2.sh" "/etc/profile.d/freetype2.sh"
install_googlefont() {
NAME=$1
PATT=$2
FONTS=~/.local/share/fonts
mkdir "$FONTS"
wget -O "/tmp/$NAME.zip" "$URL"
unzip -d "$FONTS" "/tmp/$NAME.zip" "$PATT"
rm "/tmp/$NAME.zip"
}
install_googlefont lato "https://fonts.google.com/download?family=Lato"
install_googlefont besley "https://fonts.google.com/download?family=Besley" "static/*"
# configuration
lnsf "$DIR/font/fonts.conf" "$XDG_CONFIG_HOME/fontconfig/fonts.conf"