Linux 微信字体如何更换

实在无法忍受Linux丑陋的默认字体,现在成功更换了终端和大多数应用的字体,但是试了很多办法还是无法更换微信的字体。

更换字体的正确姿势是什么,有没有大佬分享一下自己的配置

在我的电脑上,我抓了个包发现微信使用的是 NotoSans 字体:

$ strace -f /opt/wechat |& grep ttf
...
access(“/usr/share/fonts/noto/NotoSans-Regular.ttf”, R_OK) = 0

问了一下 gpt 这可能是 linux 自动匹配的机制。我运行 fc-match 确实会显示 Noto Sans

$ fc-match sans-serif
NotoSans-Regular.ttf: "Noto Sans" "Regular"

似乎可以调整 ~/.config/fontconfig/fonts.conf 来改变 fc-match 的结果。详情参考 ChatGPT 的对话:https://chatgpt.com/share/69a11002-0c4c-800b-b32e-906436786ea6

1 个赞

太强了黄佬\o/
微信现在是走的什么, wine吗, 还是gtk之类的
我其实曾经也想换微信的这个,但是微信的坑实在太多了(比方说我的语音输入法在linux微信上就没办法正常用, 除了微信,几乎任何地方都能用,包括qq, 终端)
而qq, 浏览器啥的有的是走gtk, 所以只要改GTK的设置就行

搞定了,放一个完整的步骤供大家参考:

第一步:下载安装字体(以落霞文揩为例)

wget https://github.com/lxgw/LxgwWenKai/releases/download/v1.521/lxgw-wenkai-v1.521.tar.gz

tar -zxvf lxgw-wenkai-v1.521.tar.gz

sudo mkdir -p /usr/share/fonts/truetype/lxgw-wenkai

sudo cp lxgw-wenkai-v1.521/*.ttf /usr/share/fonts/truetype/lxgw-wenkai/

sudo fc-cache -fv

这时候有些应用的字体可能已经生效了,但是终端和大多数的应用没有更换字体。

第二步:修改桌面环境的 UI 字体(以 Ubuntu 默认的 GNOME 为例)

这一步是为了把系统菜单、设置界面、文件夹窗口等表面的字体换掉。

  1. 安装“优化”工具 (GNOME Tweaks)。在终端中运行:

    sudo apt update
    sudo apt install gnome-tweaks
    
  2. 安装完成后,在你的应用列表中搜索 “优化” (或 Tweaks),打开它。

  3. 在左侧菜单点击 “字体” (Fonts)

  4. 在右侧,你会看到“界面文本”(Interface Text)、“文档文本”(Document Text) 等选项。在这里选择你刚刚安装的字体。

第三步:配置 Fontconfig 规则,彻底替换全局中文

做完第二步,你会发现系统界面变了,但有些顽固的应用里的中文还是没变。这是因为它们调用的是系统的“默认泛型字体”(如 sans-serif),我们需要去底层截胡。

  1. 在终端中新建或编辑全局字体配置文件

    sudo nano /etc/fonts/local.conf
    
  2. 编辑 local.conf 内容为如下 XML 代码,同样一落霞文揩为例(这段代码的意思是:遇到英文依然用 Ubuntu 默认字体,但只要是中文,强制第一顺位使用落霞文楷)

    XML

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
        <match target="pattern">
            <test name="lang" compare="contains">
                <string>zh</string>
            </test>
            <edit name="family" mode="prepend" binding="strong">
                <string>LXGW WenKai</string>
            </edit>
        </match>
    
        <alias>
            <family>sans-serif</family>
            <prefer>
                <family>Ubuntu</family> <family>LXGW WenKai</family> </prefer>
        </alias>
    
        <alias>
            <family>serif</family>
            <prefer>
                <family>Ubuntu</family>
                <family>LXGW WenKai</family>
            </prefer>
        </alias>
    
        <alias>
            <family>monospace</family>
            <prefer>
                <family>Ubuntu Mono</family>
                <family>LXGW WenKai Mono</family>
            </prefer>
        </alias>
    </fontconfig>
    
    
  3. 刷新一次字体缓存使规则生效:

    sudo fc-cache -fv
    
    

最后重启电脑,终于舒服了

1 个赞