Chromebook の Linux 開発環境におけるフォント設定

最近の Linux デスクトップのフォントはオープンソースのフォントエンジン FreeType のおかげでとてもきれいに表示されますし、フォントの設定も Fontconfig が面倒を見てくれるのでだいぶわかりやすくなりました。

Chromebook の Linux 開発環境もこの恩恵を受けて便利になっているのですが、普段は雰囲気で使っているところもあり、なかなか意図したとおりに設定できないこともあります。 それもどうかということで少し調べてみたので、メモを残しておきます。

なお、以下の内容はこれを書いている時点の Debian GNU/Linux 11 bullseye で確認しています。

Chromebook の Linux 開発環境におけるデフォルトフォント

Chromebook の Linux 開発環境はほとんど Debian GNU/Linux そのままなのですが、少しだけカスタマイズが入っています。 GUI 関連ですと、専用の CrosAdapta テーマと、Roboto フォントが、初めから設定されている状態になっています。

# GTK2 のデフォルト設定
$ cat /etc/gtk-2.0/gtkrc
gtk-icon-theme-name = "CrosAdapta"
gtk-theme-name = "CrosAdapta"
gtk-font-name = "Roboto 11"

# GTK3 のデフォルト設定
$ cat /etc/gtk-3.0/settings.ini
[Settings]
gtk-icon-theme-name = CrosAdapta
gtk-theme-name = CrosAdapta
gtk-font-name Roboto 11

/mnt/chrome/fonts には Chrome OS 側で用意されているフォントが共有されており、Fontconfig で読み込まれるように設定されています。 このディレクトリには Roboto の他に Noto なども含まれていて、日本語を表示する場合に利用されます。 このためほとんどのアプリケーションでは、最初からこれらのテーマやフォントが設定された状態で起動し、Chrome OS と合わせても違和感のない表示になるようになっています。

まれに Linux 開発環境がおかしくなって /mnt/chrome/fonts が見えなくなると、フォントがきちんと表示されなくなります。 そんなときはランチャーのターミナル アイコンを右クリックして Linux を一度シャットダウンしてから起動すると復活します。

新しいフォントをインストールする

Linux 開発環境を有効にした直後から、アプリケーションをインストールすれば使いやすい状態になっているわけですが、それでもアプリケーションで利用できるフォントを追加したり、表示されるフォントを変更したりしたいときもあります。

というわけで、新しいフォントをインストールしてみます。 その一つには、パッケージを利用する方法があります。 例えば M+ フォントをインストールするには、fonts-mplus パッケージをインストールします。

$ sudo apt install fonts-mplus

パッケージにないフォントをインストールしたいときは、フォント ファイルを利用します。FreeType は TrueType (.ttf/.ttc) や OpenType (.otf/otc) などのフォント形式に対応しています。 ダウンロードするなどして入手したフォントファイルは、 $HOME/.local/share/fonts というディレクトリを作成してフォント ファイルを置くことで、システムにインストールすることができます。

ここでは例として Koruri をインストールしてみます。

# フォントを置くディレクトリを作成する。
$ mkdir -p $HOME/.local/share/fonts/Koruri

# Koruri フォントをダウンロードして展開する。
$ curl -L https://github.com/Koruri/Koruri/releases/download/20210720/Koruri-20210720.tar.xz \
    | tar xJ -C $HOME/.local/share/fonts/Koruri

# フォントが使えるようになったことを確認する。
$ fc-list | grep Koruri
/home/penguin/.local/share/fonts/Koruri/Koruri-Regular.ttf: Koruri,Koruri Regular:style=Regular
/home/penguin/.local/share/fonts/Koruri/Koruri-Extrabold.ttf: Koruri,Koruri Extrabold:style=Extrabold
/home/penguin/.local/share/fonts/Koruri/Koruri-Bold.ttf: Koruri,Koruri Bold:style=Bold
/home/penguin/.local/share/fonts/Koruri/Koruri-Light.ttf: Koruri,Koruri Light:style=Light
/home/penguin/.local/share/fonts/Koruri/Koruri-Semibold.ttf: Koruri,Koruri Semibold:style=Semibold

これでいろいろなフォントを利用できるようになりました。

ユーザインタフェース (UI) のフォントを設定する

先に説明したように Chrome OS の Linux 開発環境では CrosAdapta テーマと Roboto フォントが設定されていますが、これらは UI ツールキットの設定で変えることができます。 Linux アプリケーションには UI ツールキットとして GTK や Qt を使っているものがたくさんあります。 例えば地理情報システムの QGIS は Qt5 を使っています。

(参考:Chromebook で最新版の QGIS を使う)

Chromebook の Linux 開発環境の Qt アプリケーションは GTK2 のテーマを利用するように設定されています。この設定は /etc/systemd/usr/cros-garcon.service.d/cros-garcon-override.conf で行われていて、 Environment="QT_QPA_PLATFORMTHEME=gtk2" となっています。 Qt5 アプリケーションはこの設定を見て GTK2 の設定を参照しますので、Qt に関しては GTK2 の設定をすれば反映されるはずです。 ただしこの辺の事情は Qt のバージョンによっても変わるようですので、うまくいかない場合は別の方法を試す必要があるかもしれません。

GTK のアプリケーションでは GTK2 や GTK3 がよく使われていますが、より新しい GTK4 を使ったアプリケーションも増えてきました。とはいえ GTK4 の UI 関係の設定は GTK3 のものがほとんど使えるようですし、 Debian bullseye のパッケージには GTK4 アプリケーションがほとんど用意されていないのでとりあえずは気にしなくていいと思います。

GTK2 と GTK3 のアプリケーションで利用されるテーマやフォントは、設定用の GUI アプリケーションを利用することでも設定できます。 ただ Chromebook のストレージはあまり大きくないので、できるだけ余計なアプリケーションをインストールせずにコマンドラインで設定する方がよさそうです。 いくつか GUI アプリケーションを試してみましたが、設定が反映されなかったり、原因を調べようとしてもどの設定を変更しているのかわからないので、結局はコマンドラインのほうが確実だったりします。

GTK2 の設定は $HOME/.gtkrc-2.0 で行います。 GTK3 については基本的に DConf データベースを参照するようですが、一部のアプリ(Chrome や VSCode など)は $HOME/.config/gtk-3.0/settings.ini を参照するようなので、両方に設定するとよさそうです。

GTK2 と GTK3 で使われるフォントを変更するには次のようにします。

# GTK2
# Koruri をサイズ 10 pt. で設定
$ echo 'gtk-font-name="Koruri 10"' > $HOME/.gtkrc-2.0

# GTK3
# 設定の確認&変更
$ gsettings get org.gnome.desktop.interface font-name
'Roboto 10'
$ gsettings set org.gnome.desktop.interface font-name 'Koruri 10'

# $HOME/.config/gtk-3.0/settings.ini に設定する方法
$ mkdir -p $HOME/.config/gtk-3.0
$ echo -e "[Settings]\ngtk-font-name = Koruri 10" > \
       $HOME/.config/gtk-3.0/settings.ini

テーマのフォントを変更すると多くのアプリケーションのユーザインタフェースで使われるフォントが変わりますが、中には反映されないものもあります。 QGIS ではテーマで設定されたフォントが利用されるもののフォントサイズは QGIS の設定が優先されていたので、設定画面から変更する必要がありました。 また、GTK や Qt を使用していないアプリケーションでは、別の設定が必要になるはずです。

まとめ

Chromebook では、開発用のアプリケーションを利用するときに Linux のものを利用することが多いので、初めから日本語を含むフォントやテーマが設定されているなど、使いやすさに配慮がされているのはありがたいことです。

さらに調べていけば、Linux のフォント設定はいろいろとカスタマイズすることができます。美しいフォントが使われていると読みやすいという実用的な利点もありますが、たまには気分によってフォントを変えてみると楽しいです。

動作確認環境

  • ASUS Chromebox 4, Chrome OS 98.0.4758.107 (stable)

このブログの人気の投稿

Chrome OS Flex で Linux 開発環境を利用できるのか

VS Code の外観をいい感じに設定する