Ubuntu 18.04 / Gnome 3.28 - 如何将默认的 Emoji 字体(Noto Color Emoji)更改为不同的字体?

Ubuntu 18.04 / Gnome 3.28 - 如何将默认的 Emoji 字体(Noto Color Emoji)更改为不同的字体?

Ubuntu 18.04 引入了开箱即用的彩色表情符号支持,并且默认附带 google noto 彩色表情符号字体。

但是我想用 Blobmojis 替换这些表情符号(https://github.com/C1710/blobmoji)。

我在网上找到了如何完全禁用这种颜色表情符号字体支持的方法,通常只需要删除软件包fonts-noto-color-emoji,但系统中的某个地方必须有一个配置文件来规定要使用哪种字体来表示表情符号,对吗?

这样的文件在哪里以及如何配置它以默认使用不同的字体?

答案1

过了很长时间,也切换到了 manjaro 之后,我再次遇到了这个问题,不过现在我有了解决方案。

您需要编辑 3 个不同的文件,并将其替换Blobmoji为您想要使用的 Emoji 字体。

第一个文件:/etc/fonts/conf.d/60-generic.conf

找到文件中列出所有 emoij 字体选项的部分,例如

<alias binding="same">
    <family>emoji</family>
    <prefer>
        <!-- System fonts -->
        <family>Blobmoji</family> <!-- Custom -->
        <family>Noto Color Emoji</family> <!-- Google -->
        <family>Apple Color Emoji</family> <!-- Apple -->
        <family>Segoe UI Emoji</family> <!-- Microsoft -->
        <family>Twitter Color Emoji</family> <!-- Twitter -->
        <family>EmojiOne Mozilla</family> <!-- Mozilla -->
        <!-- Third-Party fonts -->
        <family>Emoji Two</family>
        <family>Emoji One</family>
        <!-- Non-color -->
        <family>Noto Emoji</family> <!-- Google -->
        <family>Android Emoji</family> <!-- Google -->
    </prefer>
</alias>

在最顶部插入你选择的表情符号字体,如下所示:

    <prefer>
        <!-- System fonts -->
        <family>Blobmoji</family> <!-- Custom -->
        <family>Noto Color Emoji</family> <!-- Google -->

这将使您的表情符号字体优先替换任何标有“表情符号”的内容。

下一个文件是/etc/fonts/conf.d/45-generic.conf

您将在这里再次找到相同字体的列表:

<!-- System emoji -->
<alias binding="same">
    <family>Noto Color Emoji</family> <!-- Google -->
    <default><family>emoji</family></default>
</alias>
<alias binding="same">
    <family>Apple Color Emoji</family> <!-- Apple -->
    <default><family>emoji</family></default>
</alias>
<alias binding="same">
    <family>Segoe UI Emoji</family> <!-- Microsoft -->
    <default><family>emoji</family></default>
</alias>
<alias binding="same">
    <family>Twitter Color Emoji</family> <!-- Twitter -->
    <default><family>emoji</family></default>
</alias>
<alias binding="same">
    <family>EmojiOne Mozilla</family> <!-- Mozilla -->
    <default><family>emoji</family></default>
</alias>
<!-- Third-party emoji -->

再次在最顶部插入字体:

<!-- System emoji -->
<alias binding="same">
    <family>Blobmoji</family> <!-- Custom -->
    <default><family>emoji</family></default>
</alias>
<alias binding="same">
    <family>Noto Color Emoji</family> <!-- Google -->
    <default><family>emoji</family></default>
</alias>

这将用表情符号标记用您的字体书写的任何文本。

最后是你的本地~/.config/fontconfig/fonts.conf

这主要适用于 Firefox 或其他浏览器,因此它们将显示您想要的表情符号。

在末尾附加此内容:

<alias>
<family>serif</family>
<prefer>
  <family>Blobmoji</family>
</prefer>
 </alias>
 <alias>
<family>sans-serif</family>
<prefer>
  <family>Blobmoji</family>
</prefer>
 </alias>
 <alias>
<family>monospace</family>
<prefer>
  <family>Blobmoji</family>
</prefer>
 </alias>
 <match target="pattern">
<test qual="any" name="family"><string>Noto Color Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Blobmoji</string></edit>
 </match>

这将使衬线字体、无衬线字体和等宽字体能够访问自定义字体表情符号。

最后一条是特别指出的,如果任何网站指定了表情符号字体列表而不是仅仅使用无衬线字体,那么通常的字体将被您的自定义字体替换,在这种情况下给出了 Noto Sans Color,您应该在您安装的其他 2 个文件上选择最高位置的字体,很有可能它也只是 Noto Sans Color。

fc-cache -f -v一切都应设置完毕后。

答案2

尽管@zepar 的回答很有用,将表情符号偏好设置为等宽字体会破坏显示代码行号的网页。因此,您可以不附加等宽字体部分。

这是我的fonts.conf

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>

<fontconfig>

    <alias>
        <family>serif</family>
        <prefer>
            <family>JoyPixels</family>
        </prefer>
    </alias>

    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>JoyPixels</family>
        </prefer>
    </alias>

    <match target="pattern">
        <test qual="any" name="family">
            <string>Noto Color Emoji</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>JoyPixels</string>
        </edit>
    </match>

</fontconfig>

相关内容