The fundamental issue way this section of my /etc/fonts/local.conf
<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Mono</string></edit>
</match>
This was replacing the monospace family with Noto Mono. This font doesn't exist on my system. The Noto monospace font is called "Noto Sans Mono". By change "Noto Mono" to "Noto Sans Mono", fc-match then returns the correct font.
]]>Monospace font works just fine in Terminator and other console applications, but in Chrome and Firefox it falls back to some non-monospace font.
Oddly, fc-match does not return a monospace font:
$ fc-match Monospace
NotoSans-Regular.ttf: "Noto Sans" "Regular"
My font config is:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<edit mode="prepend" name="family"><string>Noto Sans</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Serif</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Sans</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Mono</string></edit>
</match>
</fontconfig>
I have noto-fonts and noto-fonts-extra installed. Xorg is aware of the Noto font path:
$ xset q
...
Font Path:
/usr/share/fonts/misc/,/usr/share/fonts/TTF/,/usr/share/fonts/ubuntu/,/usr/share/fonts/noto/,/usr/share/fonts/misc,/usr/share/fonts/TTF,built-ins
...
Any suggestions on how to go about debugging this?
]]>