Skip to content

Instantly share code, notes, and snippets.

@hunzo
Last active September 29, 2025 08:25
Show Gist options
  • Save hunzo/4a032a17297d3e487bfd7fd1bd845931 to your computer and use it in GitHub Desktop.
Save hunzo/4a032a17297d3e487bfd7fd1bd845931 to your computer and use it in GitHub Desktop.
create file /etc/fonts/conf.d/99-segoe-ui-alias.conf
#!/bin/bash
CONF_FILE_1="/etc/fonts/conf.d/99-fix-all-thai.conf"
sudo tee "$CONF_FILE_1" >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<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
# Rebuild font cache
sudo fc-cache -vf
echo "✅ Thai font fix applied. Now sans-serif (lang=th) will use Noto Sans Thai."
#!/bin/bash
# Fix Thai font rendering on Linux Mint/Noto
# Force sans-serif (Thai) to use Noto Sans Thai
CONF_FILE_1="/etc/fonts/conf.d/99-fix-thai.conf"
sudo tee "$CONF_FILE_1" >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<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" qual="any"><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"><string>sans-serif</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Noto Sans Thai</string>
</edit>
</match>
</fontconfig>
EOF
CONF_FILE_2="/etc/fonts/conf.d/99-fix-segoe-ui-alias.conf"
sudo tee "$CONF_FILE_2" >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Regular -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>regular</const>
</edit>
</match>
<!-- Light -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Light</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>light</const>
</edit>
</match>
<!-- Semibold -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Semibold</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>semibold</const>
</edit>
</match>
<!-- Bold -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Bold</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>bold</const>
</edit>
</match>
<!-- Black -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Black</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>black</const>
</edit>
</match>
<!-- Italic -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Italic</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Noto Sans</string>
</edit>
<edit name="slant" mode="assign" binding="strong">
<const>italic</const>
</edit>
</match>
<!-- Aliases -->
<alias>
<family>Segoe UI</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Light</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Semibold</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Bold</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Black</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Italic</family>
<prefer>
<family>Noto Sans</family>
</prefer>
</alias>
</fontconfig>
EOF
# Rebuild font cache
sudo fc-cache -vf
echo "✅ Thai font fix applied. Now sans-serif (lang=th) will use Noto Sans Thai."
#!/bin/bash
# Fix Thai font rendering on Linux Mint/Ubuntu
# Force sans-serif (Thai) to use Noto Sans Thai
CONF_FILE_1="/etc/fonts/conf.d/99-fix-thai.conf"
sudo tee "$CONF_FILE_1" >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family" qual="any"><string>Segoe UI Webfont</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Ubuntu Sans</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>Segoe UI</string></test>
<edit name="family" mode="assign_replace" binding="strong">
<string>Ubuntu Sans</string>
</edit>
</match>
<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>
</fontconfig>
EOF
CONF_FILE_2="/etc/fonts/conf.d/99-fix-segoe-ui-alias.conf"
sudo tee "$CONF_FILE_2" >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Regular -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>regular</const>
</edit>
</match>
<!-- Light -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Light</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>light</const>
</edit>
</match>
<!-- Semibold -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Semibold</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>semibold</const>
</edit>
</match>
<!-- Bold -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Bold</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>bold</const>
</edit>
</match>
<!-- Black -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Black</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="weight" mode="assign" binding="strong">
<const>black</const>
</edit>
</match>
<!-- Italic -->
<match target="pattern">
<test name="family" qual="any">
<string>Segoe UI Italic</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Ubuntu Sans</string>
</edit>
<edit name="slant" mode="assign" binding="strong">
<const>italic</const>
</edit>
</match>
<!-- Aliases -->
<alias>
<family>Segoe UI</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Light</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Semibold</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Bold</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Black</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
<alias>
<family>Segoe UI Italic</family>
<prefer>
<family>Ubuntu Sans</family>
</prefer>
</alias>
</fontconfig>
EOF
# Rebuild font cache
sudo fc-cache -vf
echo "✅ Thai font fix applied. Now sans-serif (lang=th) will use Noto Sans Thai."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment