修复Arch Linux和Manjaro Linux无法显示emoji的问题


安装好Arch Linux或Manjaro Linux系统后默认没办法正常显示emoji,通常会变成方框或者带有unicode码的方块:

这是因为缺失字体以及相关的字体配置导致的。

当然也有一小部分应用没有这个问题(比如Chrome),因为字体是可以在程序里单独设置的,Qt和GTK都有相应的接口,只要设置了正确的字体即可显示emoji。但很多系统程序为了兼容性是没有进行这些设置的,比如文件管理器和终端模拟器。

解决办法:

  1. 安装emoji字体
  2. 更新字体配置

首先是安装emoji字体,不考虑aur和自己下载安装字体的话一般会安装这个:noto-fonts-emoji。自测应该能正常显示所有常见emoji。

安装命令:

sudo pacman -S noto-fonts-emoji

这时应用程序还是不能正常显示emoji的,需要进行第二步更新字体配置。

字体的配置文件在/etc/fonts目录下,不同系统可能不同,在这个目录下新建local.conf文件,这个文件里是我们的自定义配置,不要去修改font.conf文件

local.conf里写入下面的内容:

<?xml version="1.0"?>


 
   sans-serif
   
     Noto Sans
     Noto Color Emoji
     Noto Emoji
     DejaVu Sans
    
 

 
   serif
   
     Noto Serif
     Noto Color Emoji
     Noto Emoji
     DejaVu Serif
   
 

 
  monospace
  
    Noto Mono
    Noto Color Emoji
    Noto Emoji
    DejaVu Sans Mono
   
 

保存文件后使用命令让新配置生效:

fc-cache

更新完配置后需要重启应用才能正常显示emoji(一部分桌面服务需要注销当前用户再次登录才会重启)。推荐可以的话直接重启一下操作系统

现在可以正常显示emoji了:

参考

https://dev.to/darksmile92/get-emojis-working-on-arch-linux-with-noto-fonts-emoji-2a9