修復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"?>
<!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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章