🐧
Arch系Linux 日本語ロケールのシステムフォントをNotoフォントにする
Arch系日本語環境の問題
Arch Linux派生ディストリビューションでは、日本語システムフォントに違和感のある状態が以前から続いています。
サンセリフが設定されているはずなのに、明朝体のように見える。また字体も見慣れたものではない…
原因はfontconfigの設定により中国語フォントが優先されている、というものです。
解決方法として
- fontconfigの設定を編集する
- 不要なフォントを削除する
が挙げられます。しかし現在はNoto CJKフォントが初めから入っている環境が多くなったため、日本語より優先度が高くなっている非Noto系中国語フォントは削除しても良いと思います。
本記事では、執筆時点でDistrowatchのページビューが多い、以下のディストリビューションを扱います。
- Garuda Linux
- CachyOS
- Manjaro Linux
なおEndeavourOS (2025.03.19) ではNoto CJK JPが最優先となっているので、削除するフォントはありません。
削除するフォント
- Garuda Linux (250803)
WenQuanYi Zen Hei
sudo pacman -Rs wqy-zenhei
- CachyOS (250824)
AR PL New Sung, Adobe Source Han Sans CN/JP/KR
sudo pacman -Rs opendesktop-fonts adobe-source-han-sans-{cn-fonts,jp-fonts,kr-fonts}
- Manjaro Linux 25.0.0
Droid Sans
sudo pacman -Rs ttf-droid
不要フォントの検索
どのフォントがプリインストールされているかはディストリビューションによって異なります。ここでは、削除するフォントの特定方法を書いておきます。
以下、Garudaでの例を示します。
-
fc-match
コマンドで、sansに割り当てられているフォントを探す
fc-match -s sans:lang=ja | head -n 10
実行結果
wqy-zenhei.ttc: "WenQuanYi Zen Hei" "Regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
NotoColorEmoji.ttf: "Noto Color Emoji" "Regular"
AdwaitaMono-Regular.ttf: "Adwaita Mono" "Regular"
NotoNastaliqUrdu-Regular.ttf: "Noto Nastaliq Urdu" "Regular"
NotoSansAdlamUnjoined-Regular.ttf: "Noto Sans Adlam Unjoined" "Regular"
- 1で見つけたフォントのファイル名(*.ttcとか*.ttf/otfとか)またはフォント表示名から、フォントファイルのパスを探す
fc-match -v wqy-zenhei.ttc | grep file
または
fc-match -v "WenQuanYi Zen Hei" | grep file
実行結果
file: "/usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc"(s)
- 2で見つけたフォントファイルのパスから、パッケージ名を特定する
pacman -Qo /usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc
実行結果
/usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc は wqy-zenhei 0.9.45-10 によって所有されています
- フォントパッケージを削除する
sudo pacman -Rs wqy-zenhei
- フォントキャッシュを更新する
fc-cache -fv
- デスクトップや端末のフォントが一時的に豆腐になってしまうので、ログインし直す
(注)CachyOSではAR PL New Sungのみ削除してフォントキャッシュを更新した後、なぜかSource Han Sans CNが最優先になってしまいました。そのためSource Han Sans系もまとめて消す方法を示しました。
実行後
Discussion