Skip to content

Instantly share code, notes, and snippets.

@hunzo
Last active December 4, 2025 02:53
Show Gist options
  • Select an option

  • Save hunzo/08e6a75973a4b6ce18a0256bc8d8ef4f to your computer and use it in GitHub Desktop.

Select an option

Save hunzo/08e6a75973a4b6ce18a0256bc8d8ef4f to your computer and use it in GitHub Desktop.
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- บังคับภาษาไทยทั้งหมดให้ใช้ Noto Sans Thai -->
<match target="pattern">
<test name="lang" compare="contains">
<string>th</string>
</test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans Thai</string>
</edit>
</match>
<!-- เผื่อบางโปรแกรมเรียก sans-serif -->
<match target="pattern">
<test name="family" qual="any"><string>sans-serif</string></test>
<test name="lang" compare="contains"><string>th</string></test>
<edit name="family" mode="assign_replace">
<string>Noto Sans Thai</string>
</edit>
</match>
<!-- เผื่อเป็น monospace ภาษาไทย (Terminal) -->
<match target="pattern">
<test name="family" qual="any"><string>monospace</string></test>
<test name="lang" compare="contains"><string>th</string></test>
<edit name="family" mode="assign_replace">
<string>Noto Sans Thai</string>
</edit>
</match>
</fontconfig>
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
</match>
</fontconfig>
#!/bin/bash
set -euo pipefail
CONF_DIR="$HOME/.config/fontconfig/conf.d"
CONF_FILE="$CONF_DIR/99-segoeUI2Noto.conf"
echo "📁 Checking directory: $CONF_DIR"
mkdir -p "$CONF_DIR"
echo "📝 Creating Fontconfig file: $CONF_FILE"
cat >"$CONF_FILE" <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="lang" compare="contains"><string>th</string></test>
<test name="family" qual="any"><string>sans-serif</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans Thai</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>Segoe UI Webfont</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="contains"><string>Emoji</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Color Emoji</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any" compare="contains"><string>Segoe UI</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>th</string></test>
<test name="family" qual="any" compare="contains"><string>Segoe UI</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans Thai</string>
</edit>
</match>
<alias>
<family>Arial</family>
<prefer><family>Noto Sans Thai</family></prefer>
</alias>
<alias>
<family>Helvetica</family>
<prefer><family>Noto Sans Thai</family></prefer>
</alias>
<alias>
<family>Verdana</family>
<prefer><family>Noto Sans Thai</family></prefer>
</alias>
<alias>
<family>Tahoma</family>
<prefer><family>Noto Sans Thai</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Noto Sans Thai</family></prefer>
</alias>
</fontconfig>
EOF
echo "✔️ Done. Run: fc-cache -f"
# Check
# ls ~/.config/fontconfig/conf.d/99-segoeUI2Noto.conf
# fc-validate ~/.config/fontconfig/conf.d/99-segoeUI2Noto.conf
# fc-conflist | grep segoe
# fc-match -s "sans-serif:lang=th"
# fc-match "Segoe UI"
# fc-match "Emoji"
# fc-match -v "sans-serif:lang=th" | grep family
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment