安裝好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