chromium snap / wrong fonts
So, since a couple of weeks my snap-installed Chromium browser on
Ubuntu focal started acting up: suddenly it chooses the wrong fonts on
some web pages. The chosen fonts are from the ~/.local/share/fonts/
directory.
Look! That's not the correct font. And it's even more apparent that the font is off when seeing the source view.
Bah. That's not even a monospaced font.
A fix that appeared to work — but unfortunately only temporarily — involves temporarily moving the custom local fonts out of the way and then flushing the font cache:
$ mkdir ~/.local/share/DISABLED-fonts
$ mv ~/.local/share/fonts/* ~/.local/share/DISABLED-fonts/
$ fc-cache -rv && sudo fc-cache -rv
Restarting chromium-browser by using the about:restart
took quite a
while. Some patience had to be exercised.
When it finally did start, all font issues were solved.
Can we now restore our custom local fonts again?
$ mv ~/.local/share/DISABLED-fonts/* ~/.local/share/fonts/
$ fc-cache -rv && sudo fc-cache -rv
And another about:restart
— which was fast as normal again — and
everything was still fine. So yes, apparently, we can.
However, after half a day of work, the bug reappeared.
A semi-permanent fix is refraining from using the the local fonts directory. But that's not really good enough.
Appently there's a bug report showing that not only Chromium is affected. And while I'm not sure how to fix things yet, at least the following seems suspect:
$ grep include.*/snap/ \
~/snap/chromium/current/.config/fontconfig/fonts.conf
<include ignore_missing="yes">/snap/chromium/1424/gnome-platform/etc/fonts/fonts.conf</include>
This would make sense, if current/
pointed to 1424
, but current/
now points to 1444
.
Here's a not yet merged pull
request
that look's promising. And here, there's someone who grew tired of
hotfixing the fonts.conf
and symlinked all global font conf files
into
~/.local/share/fonts/.
That might also be worth a try...
A more permanent solution?
$ mkdir -p ~/snap/chromium/common/.config/fontconfig
$ cat >>~/snap/chromium/common/.config/fontconfig/fonts.conf <<EOF
<fontconfig>
<include>/etc/fonts/conf.d</include>
</fontconfig>
EOF
I settled for a combination of the linked suggestions. The above snippet looks like it works. Crosses fingers...