Skip to content

Instantly share code, notes, and snippets.

@Strum355
Created March 12, 2019 23:25
Show Gist options
  • Save Strum355/957d24b1274defb71f32a9e226670051 to your computer and use it in GitHub Desktop.
Save Strum355/957d24b1274defb71f32a9e226670051 to your computer and use it in GitHub Desktop.
Noto Sans Installer and Config Generator

Noto Sans Config Generator

Downloads and installs all Noto Sans fonts and prints a config section to be added to your ~/.config/fontconfig/fonts.conf

How to use

  1. Run the download.sh file
  2. Copy the output XML and pasted it before the final closing </fontconfig> tag in your ~/.config/fontconfig/fonts.conf file

Flags

  1. --blobmoji also downloads and installs the Color Emoji blobs and adds an entry to the outputted config
  2. --preserve doesn't clear the temporary download files
#!/bin/bash
FILES=('NotoSans-hinted'\
'NotoKufiArabic-hinted'\
'NotoNaskhArabic-hinted'\
'NotoNastaliqUrdu-unhinted'\
'NotoSansAdlam-hinted'\
'NotoSansAdlamUnjoined-hinted'\
'NotoSansAnatolianHieroglyphs-unhinted'\
'NotoSansArabic-hinted'\
'NotoSansArmenian-hinted'\
'NotoSansAvestan-hinted'\
'NotoSansBalinese-unhinted'\
'NotoSansBamum-hinted'\
'NotoSansBatak-unhinted'\
'NotoSansBengali-hinted'\
'NotoSansBrahmi-unhinted'\
'NotoSansBuginese-unhinted'\
'NotoSansBuhid-hinted'\
'NotoSansCJKjp-hinted'\
'NotoSansCJKkr-hinted'\
'NotoSansCJKsc-hinted'\
'NotoSansCJKtc-hinted'\
'NotoSansCanadianAboriginal-unhinted'\
'NotoSansCarian-hinted'\
'NotoSansChakma-hinted'\
'NotoSansCham-unhinted'\
'NotoSansCherokee-hinted'\
'NotoSansCoptic-unhinted'\
'NotoSansCuneiform-unhinted'\
'NotoSansCypriot-hinted'\
'NotoSansDeseret-hinted'\
'NotoSansDevanagari-hinted'\
'NotoSansEgyptianHieroglyphs-unhinted'\
'NotoSansEthiopic-hinted'\
'NotoSansGeorgian-hinted'\
'NotoSansGlagolitic-hinted'\
'NotoSansGothic-hinted'\
'NotoSansGujarati-hinted'\
'NotoSansGurmukhi-hinted'\
'NotoSansHanunoo-unhinted'\
'NotoSansHebrew-hinted'\
'NotoSansImperialAramaic-unhinted'\
'NotoSansInscriptionalPahlavi-unhinted'\
'NotoSansInscriptionalParthian-unhinted'\
'NotoSansJavanese-unhinted'\
'NotoSansKaithi-unhinted'\
'NotoSansKannada-hinted'\
'NotoSansKayahLi-hinted'\
'NotoSansKharoshthi-unhinted'\
'NotoSansKhmer-hinted'\
'NotoSansLao-hinted'\
'NotoSansLepcha-unhinted'\
'NotoSansLimbu-unhinted'\
'NotoSansLinearB-unhinted'\
'NotoSansLisu-hinted'\
'NotoSansLycian-unhinted'\
'NotoSansLydian-unhinted'\
'NotoSansMalayalam-hinted'\
'NotoSansMandaic-hinted'\
'NotoSansMeeteiMayek-unhinted'\
'NotoSansMongolian-unhinted'\
'NotoSansMyanmar-hinted'\
'NotoSansNKo-hinted'\
'NotoSansNewTaiLue-unhinted'\
'NotoSansOgham-unhinted'\
'NotoSansOlChiki-hinted'\
'NotoSansOldItalic-unhinted'\
'NotoSansOldPersian-unhinted'\
'NotoSansOldSouthArabian-unhinted'\
'NotoSansOldTurkic-hinted'\
'NotoSansOriya-hinted'\
'NotoSansOsage-hinted'\
'NotoSansOsmanya-hinted'\
'NotoSansPhagsPa-unhinted'\
'NotoSansPhoenician-unhinted'\
'NotoSansRejang-unhinted'\
'NotoSansRunic-unhinted'\
'NotoSansSamaritan-unhinted'\
'NotoSansSaurashtra-unhinted'\
'NotoSansShavian-hinted'\
'NotoSansSinhala-hinted'\
'NotoSansSundanese-unhinted'\
'NotoSansSylotiNagri-unhinted'\
'NotoSansSymbols-hinted'\
'NotoSansSymbols2-unhinted'\
'NotoSansSyriacEastern-unhinted'\
'NotoSansSyriacEstrangela-unhinted'\
'NotoSansSyriacWestern-unhinted'\
'NotoSansTagalog-unhinted'\
'NotoSansTagbanwa-unhinted'\
'NotoSansTaiLe-unhinted'\
'NotoSansTaiTham-unhinted'\
'NotoSansTaiViet-unhinted'\
'NotoSansTamil-hinted'\
'NotoSansTelugu-hinted'\
'NotoSansThaana-hinted'\
'NotoSansThai-hinted'\
'NotoSansTibetan-hinted'\
'NotoSansTifinagh-hinted'\
'NotoSansUgaritic-unhinted'\
'NotoSansVai-hinted'\
'NotoSansYi-unhinted')
URL="https://noto-website-2.storage.googleapis.com/pkgs/"
DIR="./temp"
function downloadAndExtract() {
FILE_URL="${URL}${1}.zip"
FILENAME_TTF="$(echo $1 | sed -E 's/-(un)?hinted//')-Regular.ttf"
FILENAME_OTF="$(echo $1 | sed -E 's/-(un)?hinted//')-Regular.otf"
if [ ! -f $FILENAME_TTF ] && [ ! -f $FILENAME_OTF ]; then
#echo $FILE_URL
wget -q $FILE_URL
fi
TTF_EXISTS=$(unzip -l "${1}.zip" | grep -q "${FILENAME_TTF}" && echo $?)
FILENAME=""
if [ "$TTF_EXISTS" == "0" ]; then
FILENAME=$FILENAME_TTF
else
FILENAME=$FILENAME_OTF
fi
#echo "Extracting ${FILENAME} from ${1}.zip"
unzip -p "${1}.zip" "${FILENAME}" > "${FILENAME}"
font-manager -i "${FILENAME}"
FAMILY_NAME="$(fc-scan "${FILENAME}" | grep 'family:' | grep -oE 'Noto (Sans )?[^"]*' | head -n 1)"
echo " <family>${FAMILY_NAME}</family>"
}
function downloadBlobMoji() {
wget -q "https://github.com/C1710/blobmoji/releases/download/v-2018-04-08-emoji-11/NotoColorEmoji.ttf"
font-manager -i NotoColorEmoji.ttf
echo " <family>Blobmoji</family>"
}
cd "${0%/*}"
if [ ! -d "$DIR" ]; then
mkdir "$DIR"
fi
cat << END
<alias>
<family>sans-serif</family>
<prefer>
END
for VAR in "${FILES[@]}"; do
downloadAndExtract "$VAR"
done
if [[ "${1#*.}" == "--blobmoji" ]]; then
downloadBlobMoji
fi
cat << END
</prefer>
</alias>
</fontconfig>
END
if [[ "${1#*.}" != "--preserve" ]]; then
rm -r "$DIR"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment