WSL を使用してすべてのユーザーにフォントをインストールするにはどうすればよいですか?

WSL を使用してすべてのユーザーにフォントをインストールするにはどうすればよいですか?

WSL Bashを使用して、この質問の答え(最初の一連の手順のみが機能しました) しかし、フォントの動作がおかしくなります。フォントはテキスト エディターに表示されますが、適切にレンダリングされません。たとえば、インストールしたフォントはサンセリフ体ですが、セリフ体として表示されます。さらに、フォントはフォント設定に表示されません。

このフォントをWSLTTY、次のエラー メッセージが表示されます。

Font installation corrupt, using system substitute:
UbuntuMono NF

WSLTTY 起動エラー メッセージ

WSL Bash からファイルを適切にインストールするにはどうすればよいですか?

答え1

この問題は、WSL Bash を使用するときにファイル権限がどのように適用されるかに起因していました。

移動先のフォント ファイルには、権限/mnt/c/Windows/Fontsを持つユーザーがいませんでしたRead & execute:

  • ALL APPLICATION PACKAGES
  • ALL RESTRICTED APP PACKAGES
  • Users

以下に、管理者権限のターミナルで実行する必要があるWSL Bashの完全なインストール手順を示します。(右クリックして管理者として実行):

# Let 'my font.ttf' be your font in the current working directory.

icacls.exe 'my font.ttf' /grant 'ALL APPLICATION PACKAGES':RX
icacls.exe 'my font.ttf' /grant 'ALL RESTRICTED APP PACKAGES':RX
icacls.exe 'my font.ttf' /grant Users:RX

mv 'my font.ttf' /mnt/c/Windows/Fonts/

reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" \
    /v "my font (TrueType)" \
    /t REG_SZ \
    /d "my font.ttf" \
    /f

関連情報