WSL環境でGUIのアプリを利用するためにXサーバを導入した場合、Windows 10側にインストールされているフォントを全てそのまま利用できると便利だ。これは、フォント用の設定ファイルを用意すれば簡単に実現できる。その方法を紹介する。
対象OS:Windows 10 Fall Creators Update(バージョン1709)以降(64bit版のみ)
Windows 10に「WSL(Windows Subsystem for Linux)」をインストールすると、Linux向けのプログラム(バイナリファイル)をそのまま実行できるようになる。現在では、UbuntuやDebian、SUSE Linux、WLinux(これはDebianベースの有償製品)など、数種類のLinuxディストリビューションを導入できるようになっている。またXサーバを導入すると、GUIのアプリケーションも利用できるようになる。WSLの導入方法や、Xサーバを利用する方法については、以下の記事を参照していただきたい。
Xサーバを導入すると、次はターミナルエミュレータや各種のGUIアプリも導入することになるが、その前に、フォントも整備しておこう。WSL(とXサーバ)を導入すると、ターミナルやアプリなどでデフォルト以外のフォントを利用したくなるはずだ。しかし、インストールしたばかりのWSLでは、非常に限られたフォントしか利用できない。WSLはWindows 10とは独立した実行環境であり、フォントも独立して管理されているからだ。例えばデフォルトのUbuntu環境だと、以下のようなフォントしか含まれていない。
Windows OSでは、標準状態でももっと多くのフォントがインストールされているし、アプリによっては(Officeアプリなど)、フォントが追加インストールされることもある。WSL側にフォントを追加インストールしてもよいが、手間がかかるし、ディスク領域も余分に消費する。だがWindows 10側のフォントをWSL側から利用できると便利だ。本TIPSでは、WSL(のXサーバ)からWindows OS側のフォントを利用する方法を紹介する。
WSL上にインストールされたXサーバのアプリが利用するフォントの情報は、「/etc/fonts」フォルダの下にまとめられている。この中に/etc/fonts/fonts.confというXML形式の設定ファイルがあり、フォントに関する情報が書き込まれている。よって、ここにWindows 10側のフォント情報を追加すればよいのだが、このfonts.confファイルはシステムの更新などで上書き更新されることがあるので、このファイルに直接設定を書き込んではいけない。
代わりに、この場所に「local.conf」というファイル(XML形式のテキストファイル)を作成し、そこにWindows 10側のフォントの情報(フォントフォルダの場所)を記述する。WSL環境ではWindows 10のC:ドライブは「/mnt/c」で参照できるので(TIPS「Windows 10のWSLの自動マウントやfstabによるマウント処理をwsl.confファイルで制御する」参照)、Windows 10側のデフォルトのフォントフォルダ「C:\Windows\Fonts」は、WSLからは「/mnt/c/Windows/Fonts」で参照できる。このパスをlocal.confファイルに設定する。
このフォルダはルートユーザーでないと書き込めないので、「sudo vim /etc/fonts/local.conf」などとしてルート権限でテキストエディタを起動し、次のような内容を記述する。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>
すでにこのファイルが存在している場合や、他のフォントフォルダも使いたい場合は、「<dir>〜〜</dir>」の行を追加すればよい。Windows 10のバージョン1809以降では、フォントはユーザーフォルダの下にもインストールされることがあるため(管理者権限なしにインストールできるようになっている)、そのような場所にインストールされているフォントを利用したい場合は、その場所を追加してもよいだろう(具体的な方法については、今後別TIPSで紹介予定)。
このファイルを設定すれば、以後はWindows 10側のフォントが利用できるようになっているはずだ。WSLで利用できるフォントの一覧は「fc-list」コマンドで確認できる。
もしフォントが正しく列挙できなければ、「fc-cache -fv」コマンドで、一度フォントキャッシュをクリアして再ロードさせてみよう(フォント数が多いと少し時間がかかる)。
なお、フォント情報を確認するfc-listやfc-cacheコマンド(および/etc/fontsフォルダなど)が見つからない場合は、「sudo apt install fontconfg」などとして、fontconfigパッケージ(やX11関連のパッケージ)をインストールしておくこと。
いったんフォントが追加できれば、後は、例えば「uxterm -fa 'migmix 2m'」などのようにフォント名を指定してアプリを起動したり、アプリの中からフォントを選択したりできるようになっているはずだ。
Copyright© Digital Advantage Corp. All Rights Reserved.