首先要安装emoji字体,以noto fonts emoji为例

sudo pacman -S noto-fonts-emoji

1.禁用全部位图字体仅对emoji字体启用

Fontconfig 配置文件中,70-no-bitmaps.conf作用是禁用位图字体。位图字体有时用作缺失字体的后备,这可能会导致文本呈现像素化或过大。在/etc/fonts/conf.d/中保留该配置文件,则禁用位图字体。

sudo ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/70-no-bitmaps.conf

fontconfig有些时候把某些emoji字体也当做位图字体,所以使用该配置文件,会导致同时禁用emoji字体。如果对所有字体禁用了嵌入位图,则仍然可以为特定字体启用嵌入位图,以防没有嵌入位图而无法正常工作。例如,启用Noto emoji:

gedit 64-enable-emoji.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <test name="family" qual="any">
      <string>Noto Color Emoji</string>
    </test>
    <edit name="embeddedbitmap">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>
  • 对全局生效,保存到/etc/fonts/conf.d/
  • 或者只对用户生效,保存到当前用户的~/.config/fontconfig/conf.d/

2.启用位图字体缩放

禁用位图字体的缩放通常会使位图字体变得模糊,删除 /etc/fonts/conf.d/10-scale-bitmap-fonts.conf 会解决。但是同时会破坏表情符号字体(如 Noto emoji表情符号)的缩放,使它们变得巨大。由于我们上面已禁用了其他位图字体,所以启用位图字体的缩放。
检查/etc/fonts/conf.d/目录下是否有10-scale-bitmap-fonts.conf配置文件,如果没有,新建软连接到此处。

sudo ln -s /usr/share/fontconfig/conf.default/10-scale-bitmap-fonts.conf /etc/fonts/conf.d/10-scale-bitmap-fonts.conf

3.刷新字体缓存

fc-cache -fv

关闭需要显示emoji的应用,如浏览器、编辑器、终端等,重新打开,输入emoji表情符号即可看到效果。

标签 none