Почему приложения WSL GUI отображаются с размытыми шрифтами в Xming?

992
Mehrdad

Когда я пытаюсь использовать Xming с WSL для запуска программ с графическим интерфейсом, я вижу шрифты со сглаживанием в оттенках серого, как в Firefox, как вы можете видеть здесь:

Screenshot

Это происходит с каждым дистрибутивом, который я пробовал (Arch и Ubuntu), и это заставляет меня хотеть высунуть глаза, но я не могу понять, как это исправить.

( Примечание: если у вас экран с высоким DPI, изображение будет размытым - вы можете нажать F12 и запустить этот код Javascript для уменьшения:. document.body.style.zoom = 1 / window.devicePixelRatio)

В чем причина этой проблемы? Проблема с Xming или с дистрибутивом? Я пытался следовать всем советам на веб-сайте Xming безрезультатно.

3
Это только для Арка? Я не выглядел так близко раньше. Biswapriyo 6 лет назад 0
@Biswapriyo: Вы знаете, у меня была эта проблема и на более старой Ubuntu (думаю, 16.04?), Но теперь, когда я пробую ее на Ubuntu, который я только что установил вчера (18.04, тестирование через `xterm -fa 'Ubuntu Mono' -fs 12` как у Арча раньше) Кажется, у меня нет этой проблемы. Не уверен, что причина может быть. Mehrdad 6 лет назад 0
@Biswapriyo: Я понял это, потому что я использую тот же домашний каталог, который имеет тот же `fonts.conf`. Это исправление в Ubuntu тоже. Mehrdad 6 лет назад 0

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

4
Mehrdad

(Обновлено также для адреса VSCode)

Для некоторых программ решение состоит в том, чтобы просто добавить это к ~/.config/fontconfig/fonts.conf:

<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit name="antialias" mode="assign"><bool>true</bool></edit> <edit name="hinting" mode="assign"><bool>true</bool></edit> <edit name="hintstyle" mode="assign"><const>hintfull</const></edit> <!-- try hintmedium if it looks bad --> <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> <edit name="rgba" mode="assign"><const>rgb</const></edit> <!-- set to match your display --> </match> </fontconfig> 

Для этих программ, после того, как вы это сделаете, вы должны получить хороший, плавный рендеринг, как я сделал здесь:

Screenshoot

Однако для других программ, например для Visual Studio Code (который использует Electron), вам также необходимо установить freetype2-cleartype. Как объясняет руководство Arch, первоначальной причиной проблемы являются патенты Microsoft, запрещающие рендеринг субпикселей, и которые, чтобы исправить это, freetype2-cleartypeмогут быть установлены из AUR либо вручную, либо с помощью следующего ( обратите внимание, что здесь я пропускаю проверку подписи, чтобы заставить это работать на меня)

yaourt --m-arg "--skippgpcheck" -S --needed freetype2-cleartype 

Если у вас его нет yaourt, вы захотите скомпилировать и установить его из репозитория AUR, и если при этом вы получаете ошибки GPG, а обычная sudo pacman-key --refresh-keysне работает, вы захотите запустить, sudo pacman-keys --populateкак описано здесь .