最低限の文化的な生活

Hack / Chromebook / etc.

Chrome OS のデフォルトフォントを変更した

ASUSChromebook Flip C302CA を使用していますが、Chrome OS のデフォルトフォントが Noto Sans CJK JP に設定されています。

このフォントは日本語部分が等幅であるため、個人的に好みではないので変更することにしました。

更新情報

  • 2019/05/13 初版。Chrome OS 74.0.3729.125 にて動作確認

やったこと

フォントのインストール

id459547.hatenablog.jp

local.conf のバックアップ

Chrome OS のフォント設定ファイルは、/etc/fonts/local.conf です。Linux と同じです。このファイルを編集していくので、バックアップします。

local.conf の編集

local.conf の中身は XML 形式で記述されています。

編集には Text を使用しました。local.conf.xml と拡張子を変更することで、コードハイライトが使用でき、編集しやすいです。

ちなみに、私は LinuxXML その他の詳しい知識はありませんので、変更箇所の理屈はわかりません。

Chrome OS で認識されているフォント名は、fc-list コマンドの出力結果を参照しました。

サンセリフ体の定義

56 行目付近

<family>sans-serif</family>
<prefer>
  <family>Arimo</family>
  <family>Noto Sans</family>
  <family>Noto Sans CJK SC</family>
...

サンセリフ体の定義箇所です (たぶん)。

上に書けば優先される気がするので、英字フォント Arimo の下に定義し、Noto Sans CJK 系列はコメントアウトしてサンセリフ体としては定義されないようにしました。

<family>sans-serif</family>
<prefer>
  <family>Arimo</family>
  <family>Your Font</family>
  <family>Noto Sans</family>
  <!-- <family>Noto Sans CJK SC</family> -->
...

133 行目付近

<family>ui-sans</family>
<prefer>
  <family>Noto Sans UI</family>
  <family>Noto Sans CJK SC</family>
...

UIに使用されるフォントの定義箇所です (たぶん)。ここも同じように変更しました。

<family>ui-sans</family>
<prefer>
  <family>Your Font</family>
  <family>Noto Sans UI</family>
  <!-- <family>Noto Sans CJK SC</family> -->
...

フォントのエイリアス

Windows の日本語フォントが指定された場合の代替フォントを定義する箇所を変更しました。

220 行目付近〜

<alias binding="same">
  <family>Noto Sans CJK JP</family>
  <default>
    <family>MS PGothic</family>
  </default>
</alias>
<alias binding="same">
  <family>Noto Sans CJK JP</family>
  <default>
    <family>MS Pゴシック</family>
  </default>
</alias>
<alias binding="same">
  <family>MS PGothic</family>
  <accept>
    <family>Noto Sans CJK JP</family>
  </accept>
</alias>
<alias binding="same">
  <family>MS Pゴシック</family>
  <accept>
    <family>Noto Sans CJK JP</family>
  </accept>
</alias>
...
<alias binding="same">
  <family>Your Font</family>
  <!-- <family>Noto Sans CJK JP</family> -->
  <default>
    <family>MS PGothic</family>
  </default>
</alias>
<alias binding="same">
  <family>Your Font</family>
  <!-- <family>Noto Sans CJK JP</family> -->
  <default>
    <family>MS Pゴシック</family>
  </default>
</alias>
<alias binding="same">
  <family>MS PGothic</family>
  <accept>
    <family>Your Font</family>
    <!-- <family>Noto Sans CJK JP</family> -->
  </accept>
</alias>
<alias binding="same">
  <family>MS Pゴシック</family>
  <accept>
    <family>Your Font</family>
    <!-- <family>Noto Sans CJK JP</family> -->
  </accept>
</alias>
...

日本語フォントの定義

700 行目付近

<match target="pattern">
  <test name="lang" compare="contains">
    <string>ja</string>
  </test>
  <test name="family">
    <string>sans-serif</string>
  </test>
  <edit name="family" mode="prepend" binding="strong">
    <string>Noto Sans CJK JP</string>
  </edit>
</match>
...

日本語のサンセリフ体を定義する箇所です (たぶん)。ここも変更しました。

<match target="pattern">
  <test name="lang" compare="contains">
    <string>ja</string>
  </test>
  <test name="family">
    <string>sans-serif</string>
  </test>
  <edit name="family" mode="prepend" binding="strong">
    <string>Your Font</string>
    <!-- <string>Noto Sans CJK JP</string> -->
  </edit>
</match>
...

フォントのレンダリング

フォントのレンダリング設定を定義している箇所 (たぶん) に、追加したフォントを追記しました。

762 行目付近

<match target="font">
  <edit mode="assign" name="noto_cjk"><bool>true</bool></edit>
</match>
<match target="font">
  <test name="family" qual="all" compare="not_eq">
    <string>Your Font</string>
  </test>
...
  <test name="family" qual="all" compare="not_eq">
    <string>Noto Sans CJK JP</string>
  </test>
...

local.conf を差し替える

編集した local.conf を/etc/fonts/ の元ファイルと差し替え、再起動するとフォントが反映されていました。