简单修改Linux的默认emoji

先看看不同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 文件夹 添加

  • 70-hmos-emoji.conf
  • 69-force-hmos-emoji.conf

两个文件

第一个70-hmos-emoji.conf文件里输入

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer>
      <family>HMOS Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>HMOS Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>HMOS Color Emoji</family>
    </prefer>
  </alias>
</fontconfig>

目的是把系统的emoji替换为鸿蒙的,这样替换后系统大部分都会是这个emoji,甚至连锁屏输入密码的黑色圆点也是这个emoji里的(linux默认的emoji几乎都是黑色轮廓那种)

第二个69-force-hmos-emoji.conf文件里输入

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <!-- 1. 强制将 "emoji" 字体族的渲染指向 HMOS Color Emoji -->
  <match target="pattern">
    <test qual="any" name="family">
      <string>emoji</string>
    </test>
    <edit name="family" mode="prepend" binding="strong">
      <string>HMOS Color Emoji</string>
    </edit>
  </match>

  <!-- 如果系统中存在 Noto Color Emoji,则将其所有请求都替换为 HMOS -->
  <match target="font">
    <test name="family">
      <string>Noto Color Emoji</string>
    </test>
    <edit name="family" mode="assign" binding="strong">
      <string>HMOS Color Emoji</string>
    </edit>
  </match>
</fontconfig>

这个作用就是和一开始的简单方法一样的效果,主要是让输入法等点名用noto emoji的看起来也是鸿蒙的emoji

将字体添加进系统字体

进入 /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仓库地址

版权信息