安装好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"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
<family>DejaVu Sans</family>
</prefer>
</alias> <alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
<family>DejaVu Serif</family>
</prefer>
</alias> <alias>
<family>monospace</family>
<prefer>
<family>Noto Mono</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
<family>DejaVu Sans Mono</family>
</prefer>
</alias>
</fontconfig>

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

fc-cache

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

现在可以正常显示emoji了:

参考

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

修复Arch Linux和Manjaro Linux无法显示emoji的问题的更多相关文章

  1. 修复UEFI模式下Manjaro Linux启动问题

    上周在更新Manjaro Linux的时候误触了电源键,导致内核更新了一半系统强制关机,重启时正常进入grub但无法正常引导进入系统. 由于不想重装系统(一大堆环境和工具的配置还是相当繁琐的),加上初 ...

  2. 好消息,Manjaro Linux 18 已正式发布!

    导读 Manjaro Linux 18 已正式发布!Xfce 版本仍然是旗舰,Manjaro 为其提供了优雅且领先的集成体验.这一版本搭载 Xfce 4.13. 这一版本主要专注于在桌面和窗口管理器上 ...

  3. U盘安装Debian KDE 输入法 Manjaro Linux WPS 字体

    Manjaro: 首先下载Manjaro Linux,然后用USBWriter(https://pan.baidu.com/s/1bZGb5k)写入,重启选择USB启动. 更改软件仓库(Debian称 ...

  4. Manjaro Linux安装singularity-container

    技术背景 容器化技术在各种生产领域已经得到了广泛的应用,这得益于容器的轻量化(相比于虚拟机而言),安全性(隔离弱于虚拟机,但是权限控制得当的情况下也可以认为是安全隔离的)以及系统级虚拟化带来的高可用性 ...

  5. linux环境下验证码不显示的几种情况

    linux环境下验证码不显示的几种情况 gd库扩展没有安装. 查看phpinfo(),看看有没有安装gd库 yum安装gd库或者phpize安装 安装完成后记得重启php-fpm bom头的原因 在生 ...

  6. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

    两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux  ps1 menu choice Multiselect 传教士 菜单 powe ...

  7. Linux以百万兆字节显示内存大小

    Linux以百万兆字节显示内存大小 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free --tera total used free shared buf ...

  8. Linux中,去掉终端显示的当前目录的绝对路径

    Linux中,去掉终端显示的当前目录的绝对路径 去~/.bashrc中,找到PS1变量的定义,如果没有,手动加上: 可以将显示输出到标题栏上: #export PS1="[e]2;u@H w ...

  9. Linux vi 文本代码时显示行号或不显示行号

    Linux vi 文本代码时显示行号或不显示行号 前提  安装了vim $vi ~/.vimrc 显示的话加上 set nu 不想显示的话可以注释掉 "set nu 之后 $source ~ ...

随机推荐

  1. 什么是 zuul路由网关?

    (1)Zuul 包含了对请求的路由和过滤两个最主要的功能:其中 责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负 请求的处理过程进行干预,是实现请求校验.服务聚合等功 ...

  2. 什么是 Hystrix 断路器?我们需要它吗?

    由于某些原因,employee-consumer 公开服务会引发异常.在这种情况下使用Hystrix 我们定义了一个回退方法.如果在公开服务中发生异常,则回退方法返回一些默认值. 如果 firstPag ...

  3. Python包装器

    def func(): print("func body") def f1(arg): print("f1:",arg) def wrapper(b): pri ...

  4. 用maven建立一个工程4

    在命令行里面输入cd C:\Users\admin\Documents\hello 然后按回车 再输入这行代码 mvn archetype:generate -DgroupId=com.liyongz ...

  5. django基础环境配置

    Django环境搭建 1.下载安装 命令行 pip install django==1.11.21 pip install django==1.11.21 -i 源 pycharm setting - ...

  6. Tomcat之“VM options配置”

    VM options: -Dfile.encoding=UTF-8

  7. cpu设计过程

    一款CPU是如何设计出来的? 前面一段,我们了解了芯片的制造过程,也就是如何从沙子中提取硅.把硅切成片,在片上通过离子注入实现PN结.实现各种二极管.三极管.CMOS管.从而实现千万门级大规模集成电路 ...

  8. video元素和audio元素相关事件

    前言 在利用video元素或audio元素读取或播放媒体数据时,会触发一系列事件,如果用js脚本来捕抓这些事件,就可以对着这些事件进行处理了. 捕抓的方式有两种: 第一种是监听的方式.使用vedio或 ...

  9. java中如何知道一个字符串中有多少个字,把每个字打印出来,举例

    9.6 About string,"I am ateacher",这个字符串中有多少个字,且分别把每个字打印出来. public class Test {     static i ...

  10. Java中使用最频繁及最通用的Java工具类

    在Java中,工具类定义了一组公共方法,Java中使用最频繁及最通用的Java工具类. 一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.so ...