Размытые шрифты при использовании масштабирования по умолчанию в Windows с приложениями WSL GUI (HiDPI)

884
lol

Есть ли способ исправить размытые шрифты в приложениях с графическим интерфейсом Linux, когда они запускаются из WSL (Ubuntu 18.04) с использованием стандартного масштабирования Windows? Вещи, которые я пробовал до сих пор:
С Xming:

  1. Пробовал отключить масштабирование Windows и установить его со стороны Linux GDK_DPI_SCALE=2.5, проблема в том, что некоторые вещи, такие как значки контекстного меню, не воспроизводятся и часто не масштабируются. Без GDK_DPI_SCALE=2.5, приложения в основном непригодны, так как текст очень маленький.
  2. Попытался установить C:\Program Files\Xming\fonts\TTFи запустить все шрифты из C: \ Windows \ Fonts и запустить mkfontscaleего тоже не смог.
  3. Пробовал с помощью VcXsrv, имеет ту же проблему.

Скриншоты

  • Clion:

Clion

  • Сравнение между emacs (WSL) и VS Code (Windows native)

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

Все ресурсы, которые я посмотрел до сих пор:

  1. Почему приложения WSL GUI отображаются с размытыми шрифтами в Xming? : Ответ здесь специально для Firefox и электронных приложений.
  2. Терминал Gnome-Terminal расплывчатый на Xming : нет ничего особенно полезного, кроме предложения отключить масштабирование и использовать что-то еще, кроме Xming.
  3. DPI вызывает проблемы с запуском программ с графическим интерфейсом на экране 4K : предлагает использовать VcXsrv.

Основная цель всего этого - уметь запускать текстовые редакторы (emacs) / IDE (Clion) из WSL. И причина, по которой я не могу установить их эквивалент для Windows, заключается в том, что мы разрабатываем только для Linux.

Немного системных деталей:

экран

4K (3840x2160) - 15,6 "

Операционные системы

  • 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)

1
Добавил скриншоты, спасибо lol 6 лет назад 0
@Biswapriyo Я не уверен, что вы имели в виду под средой рабочего стола, но единственные приложения с графическим интерфейсом, которые я использую, это emacs и CLion, все остальные приложения основаны на терминалах. lol 6 лет назад 0
Я не знал, что вы можете заполнить DE, используя WSL, однако я просто запускаю эти два приложения. Вы можете добавить это как ответ? Возможно, стоит попробовать. lol 6 лет назад 0

1 ответ на вопрос

0
Biswapriyo

Отказ от ответственности: следующая процедура может отличаться в зависимости от реального оборудования в системе. Настройки могут измениться в вашей настройке.

Сначала включите параметры высокого разрешения для исполняемого файла X-сервера. Закройте любой работающий экземпляр этого X-сервера. Откройте папку, в которой вы установили X-сервер, например, VcxSrv, Xming, X410 и т. Д. Здесь я выбираю D:\MyFolderи VcxSrv в качестве примера. Откройте эту папку, щелкните правой кнопкой мыши vcxsrv.exeдля VcxSrv или Xming.exeдля Xming. Выберите «Свойства»> вкладка «Совместимость»> «Изменить параметры высокого разрешения»> «Включить переопределение масштабирования с высоким разрешением»> выберите «Приложение» (или «Улучшенная система»). Вот как выглядит скриншот после изменения настроек:

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" 

Затем переопределите настройки GTK + для среды X11. В этой статье о гномах подробно рассматриваются переменные среды. GDK_SCALEбудет масштабировать окна по конкретному коэффициенту. GDK_DPI_SCALEбудет масштабировать DPI для масштабируемых приложений. Включите настройки с помощью следующих команд в bash (или другой оболочке).

export GDK_SCALE=0.5 export GDK_DPI_SCALE=2 

Измените эти значения в соответствии с вашей системой. Теперь запустите X-сервер и программы X11. Эта тема Reddit также помогает.

Это сработало, спасибо! Просто чтобы убедиться, что я также проверил это с Firefox. Похоже, я пропустил флаг `GDK_SCALE`. Единственное, что не сработало, это Clion (однако, вручную изменив шрифт в 2,5 раза, оригинал исправил его). Хотя рендеринг довольно медленный, особенно в случае Firefox, но это уже другой вопрос. lol 6 лет назад 0
@lol Кстати, защита включения в заголовочном файле не должна начинаться с подчеркивания (в образе VScode). Biswapriyo 6 лет назад 0
Вы правы, но это из академического проекта, где люди не беспокоились о таких вещах. lol 6 лет назад 0