修復Arch Linux和Manjaro Linux無法顯示emoji的問題
安裝好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了:
參考
//dev.to/darksmile92/get-emojis-working-on-arch-linux-with-noto-fonts-emoji-2a9