简单修改Linux的默认emoji

| 字数:439 | 阅读:约2min

先看看不同emoji的样式

  • 图一是Noto的,linux和大部分安卓系统自带emoji
  • 图二是HMOS的,华为鸿蒙的所有系统自带emoji
  • 图三是IOS的,苹果设备自带emoji

Noto Emoji 样式 鸿蒙 Emoji 样式 iOS Emoji 样式


怎么修改呢

简单方法

  • 复制替换即可

如果是安卓的话可能还需要magisk模块来实现,但是linux可就简单多了,下载相应emoji的ttf字体后,重命名 NotoColorEmoji ,然后复制到 /usr/share/fonts/truetype/noto 里即能完成emoji的切换 但这个方法简单,也有不足,emoji覆盖不全

复杂方法

  • 修改linux的配置

修改配置

前往 .config/fontconfig/conf.d 文件夹添加 01-hmos-emoji.conf
01-hmos-emoji.conf 文件里输入

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <!-- 1. 将常见的emoji字体别名指向HMOS -->
    <alias binding="strong">
        <family>Apple Color Emoji</family>
        <prefer>
            <family>HMOS Color Emoji</family>
        </prefer>
    </alias>
    
    <alias binding="strong">
        <family>Segoe UI Emoji</family>
        <prefer>
            <family>HMOS Color Emoji</family>
        </prefer>
    </alias>
    
    <alias binding="strong">
        <family>Noto Color Emoji</family>
        <prefer>
            <family>HMOS Color Emoji</family>
        </prefer>
    </alias>
    
    <alias binding="strong">
        <family>emoji</family>
        <prefer>
            <family>HMOS Color Emoji</family>
        </prefer>
    </alias>
    
    <!-- 2. 针对所有字体匹配,添加HMOS到字体列表 -->
    <match target="pattern">
        <test name="family" compare="eq">
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>HMOS Color Emoji</string>
        </edit>
    </match>
    
    <match target="pattern">
        <test name="family" compare="eq">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>HMOS Color Emoji</string>
        </edit>
    </match>
    
    <match target="pattern">
        <test name="family" compare="eq">
            <string>monospace</string>
        </test>
        <edit name="family" mode="prepend">
            <string>HMOS Color Emoji</string>
        </edit>
    </match>
</fontconfig>

如果想要系统级而不是用户级的话就把这个文件添加到 /etc/fonts/conf.d/ 里。

将字体添加进系统字体

进入 /usr/share/fonts/truetype 文件,创建一个 hmos 文件夹,然后把HMOSColorEmojiCompat.ttf文件放进去即可

诶或许可以直接安装字体就行了👀。

刷新字体缓存

shell里输入

sudo fc-cache -f -v

刷新缓存,然后重启电脑 可以通过以下命令检验字体是否被系统正确识别

fc-list | grep "HMOS"

我的输出为

SkyShadowHero@SkyShadowHero-Deepin ~/Desktop> fc-list | grep "HMOS"                                           
/usr/share/fonts/truetype/hmos/HMOSColorEmojiCompat.ttf: HMOS Color Emoji:style=Regular
/home/SkyShadowHero/.local/share/fonts/HMOS Color Emoji/HMOSColorEmojiCompat.ttf: HMOS Color Emoji:style=Regular

即代表已成功识别


后言

其他的emoji字体也应该可以通过同样的方法替换,顺便分享一下HMOSColorEmojiCompat.ttf文件,这是以前刷手机时,从一个鸿蒙的系统包里拆出来的 123云盘链接🔗 提取码:eQNA

后后言

为了这个封面图,找不到好用明了的字体管理器,我甚至找llm用pyqt5重新做了一个,好神奇
字体预览器Github仓库地址

版权信息