Linux 下設定回落字型來避免Konsole裡中文以宋體顯示
起因
最近一段時間突然發現我的 konsole
終端裡面的中文字型開始顯示為宋體,倒不是說宋體一定不好看,而是跟英文字型顯得有些格格不入。不過突然想起之前似乎在哪裡看到過這個,後來想起是 archlinux cn 的 TG 頻道里有提到這個,並且給出了 解決方案 。不過既然提到了 fontconfig
我覺得還是應該去了解一下,知其然也知其所以然。
fontconfig 是什麼
這個問題已經有諸位大佬講的比較清楚,比如 這篇文章,如果想要相對詳細瞭解的可以仔細閱讀一番,收穫會比較大。
而我們這裡就簡單的知道 fontconfig
可以提供字型回落,也就是如果某個字型不能正常顯示一些文字,比如英文字型想要顯示中文,那麼這個時候 fontconfig
就可以控制回落的時候選擇什麼字型,也就解決了我們上面的預設回落為宋體的問題。
如何配置 fontconfig
就像上面那片大佬的文章裡面講到的,我個人也是推薦在 ~/.config/fontconfig/fonts.conf
中配置 fontconfig。
fontconfig 的配置檔案格式為 xml 格式,簡單的示例如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test name="family" compare="eq">
<string>Hack Nerd Font Mono</string>
</test>
<edit name="family" mode="append">
<string>Source Han Mono SC</string>
</edit>
</match>
</fontconfig>
對於這個配置檔案來說,Hack Nerd Font Mono
是需要被配置的字型,而 Source Han Mono SC
則是回落字型。由於我們目前配置的是為 konsole 配置,所以中文字型我們也選擇了等寬字型 Source Han Mono, 當然你也可以選擇其他的等寬字型,比如 maple-font 。
然後我們也需要確定目前 konsole
使用的字型,點選右上角 選單
——編輯當前方案
——外觀
, 即可在下方看到自己選擇的字型,之後你可以執行 fc-list | grep 字型名
來找到這款字型並且複製其名稱。
更改完上面兩個值,儲存之後執行 fc-cache -fv
來重新整理字型快取即可。
後面我們舉一反三就可以更改其他英文字型的回落字型,只需要將 match
以及其中間的內容複製到下面新加一個配置即可。