web-dev-qa-db-ja.com

WSL GUIアプリケーション(HiDPI)でWindowsのデフォルトのスケーリングを使用するとフォントがぼやける

デフォルトのWindowsスケーリングを使用してWSL(Ubuntu 18.04)から実行されているときに、Linux GUIアプリケーションでぼやけたフォントを修正する方法はありますか?これまでに試したこと:
Xmingの場合:

  1. Windowsのスケーリングを無効にし、Linux側からGDK_DPI_SCALE=2.5を使用して設定しようとしました。これの問題は、コンテキストメニューアイコンがうまく再生されず、スケーリングされないことが多いことです。 GDK_DPI_SCALE=2.5がないと、テキストが非常に小さいため、アプリケーションは基本的に使用できません。
  2. C:\ Windows\FontsからC:\Program Files\Xming\fonts\TTFにすべてのフォントをインストールしてmkfontscaleを実行しようとしたところ、この方法でも機能しませんでした。
  3. VcXsrvを使用してみましたが、同じ問題があります。

スクリーンショット

  • クリオン:

Clion

  • Emacs(WSL)とVSコード(Windowsネイティブ)の比較

Comparison between emacs (WSL) and VS Code (Windows native)

これまでに調べたすべてのリソース:

  1. WSL GUIアプリがXmingでぼやけたフォントでレンダリングされるのはなぜですか? :ここでの答えは、FirefoxとElectronベースのアプリケーションのみを対象としています。
  2. XmingのGnome-Terminal blurry :スケーリングを無効にしてXming以外のものを使用するという提案以外に特に役立つことはありません。
  3. 4K画面でGUIプログラムを実行するDPIの問題 :VcXsrvの使用を提案します。

これらすべてを行う主な目的は、WSLからテキストエディター(emacs)/ IDE(Clion)を実行できるようにすることです。また、同等のWindowsをインストールできない理由は、Linux専用に開発しているためです。

いくつかのシステムの詳細:

画面

4K(3840x2160)-15.6インチ

OS

  • Windows:Windows 10 Home v1803ビルド:17134.345

  • [〜#〜] wsl [〜#〜]:Ubuntu 18.04(Linux username 4.4.0-17134-Microsoft #345-Microsoft Wed Sep 19 17:47:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

12
lol

免責事項:次の手順は、システム内の実際のハードウェアによって異なる場合があります。設定はセットアップで変更される場合があります。

まず、Xサーバー実行可能ファイルの高DPI設定を有効にします。そのXサーバーの実行中のインスタンスをすべて閉じます。 Xサーバーをインストールしたフォルダーを開きます。 VcxSrv、Xming、X410など。ここでは、例としてD:\MyFolderおよびVcxSrvを選択します。そのフォルダを開き、VcxSrvの場合はvcxsrv.exeを、Xmingの場合はXming.exeを右クリックします。 [プロパティ]> [互換性]タブ> [高DPI設定の変更]> [高DPIスケーリングの上書きを有効にする]> [アプリケーション](または[システム拡張]オプション)に変更を選択します。設定を変更した後のスクリーンショットは次のとおりです。

Enable_Dpi_Awareness_vcxsrv

また、xlaunch.exeファイルに対して上記の手順を実行します。この変更により、次のレジストリ値が追加されます。

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"D:\\MyFolder\\xlaunch.exe"="~ HIGHDPIAWARE"
"D:\\MyFolder\\vcxsrv.exe"="~ HIGHDPIAWARE"

次に、X11環境のGTK +設定をオーバーライドします。 このGnomeの記事 には、環境変数の詳細なビューがあります。 GDK_SCALEは、ウィンドウを特定の係数でスケーリングします。 GDK_DPI_SCALEは、スケール対応アプリケーションのDPIをスケールします。 bash(または他のシェル)で次のコマンドを使用して設定を有効にします。

export GDK_SCALE=0.5
export GDK_DPI_SCALE=2

システムに応じてこれらの値を変更します。 XサーバーとX11プログラムを実行します。 このredditスレッド も役立ちます。

15
Biswapriyo