记录一下如何解决Gmod在Linux下显示不出汉字的问题

这几天刷了一堆高松灯企鹅视频,搞得我又想玩GMod了,于是乎下载回来。装好打开,初看没有问题,进地图一看,我去,汉字怎么全变成大方块了?到网上搜了好些时间,都说是老问题。用proton虽然能正常玩,但是字体忽大忽小的,看着实在不习惯。

想着是不是兼容性的问题,在兼容性里将runtime改成了Legacy runtime 1.0,然后症状变了,方块没了,成空白了。又是一通搜索过后,找到了这个issue,里面说可以通过配置FONTCONFIG_FILE解决汉字变成空白的问题,跟着试了一下,终于可以正常显示汉字了。

以下是fontconfig文件的内容(来自另一个issue):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family" qual="any">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>WenQuanYi Micro Hei</string>
<string>Noto Sans CJK TC</string>
<string>Noto Sans CJK JP</string>
<string>Noto Sans CJK KR</string>
<string>Noto Sans</string>
<string>Noto Color Emoji</string>
<string>sans-serif</string>
</edit>
</match>
<dir>/usr/share/fonts</dir>
</fontconfig>

将fontconfig保存之后,将gmod的启动参数修改成FONTCONFIG_FILE=/path/to/source.conf %command%,这样就能正常显示汉字了。
似乎必须使用Legacy runtime 1.0作为兼容性工具,用新的运行时不起作用。

更新一下

因为i386的库阻碍了系统更新,昨天将Steam用flatpak重装了一下,设置的迁移参考这篇文章,<dir>/usr/share/fonts</dir>要修改成一个flatpak中能读取的路径,我选的是~/.var/app/com.valvesoftware.Steam/fonts,将/usr/share/fonts整个复制到~/.var/app/com.valvesoftware.Steam/就行,其他的像菜单之类的问题网上一搜就有,不再赘述了。