安裝好Arch Linux或Manjaro Linux系統後默認沒辦法正常顯示emoji,通常會變成方框或者帶有unicode碼的方塊:
這是因爲缺失字體以及相關的字體配置導致的。
當然也有一小部分應用沒有這個問題(比如Chrome),因爲字體是可以在程序裏單獨設置的,Qt和GTK都有相應的接口,只要設置了正確的字體即可顯示emoji。但很多系統程序爲了兼容性是沒有進行這些設置的,比如文件管理器和終端模擬器。
解決辦法:
- 安裝emoji字體
- 更新字體配置
首先是安裝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