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

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

Решение

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

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

Также сделайте вышеуказанные шаги для 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 также помогает.

Выберите "Свойства"> вкладка "Совместимость"> "Изменить настройки высокого разрешения"> "Включить переопределение масштабирования высокого разрешения"> измените значение на "Приложение" (или "Улучшенная система").

используйте приложение ,, а не "улучшенная система"

Другие вопросы по тегам