Por que os aplicativos da GUI da WSL são renderizados com fontes borradas com o Xming?

3

Quando tento usar o Xming com o WSL para executar programas GUI, vejo fontes com anti-aliasing em escala de cinza, como no Firefox, como você pode ver aqui:

Isso acontece com cada distro que eu tentei (Arch e Ubuntu), e isso me faz querer espantar meus olhos, mas pela minha vida eu não consigo descobrir como consertar isso.

( Nota: Se você tiver uma tela com DPI alto, a imagem ficará desfocada - você pode pressionar F12 e executar este código Javascript para reduzir: document.body.style.zoom = 1 / window.devicePixelRatio .)

Qual é a causa deste problema? O problema é com o Xming ou com a distro? Eu tentei seguir todos os conselhos no site do Xming sem sucesso.

    
por Mehrdad 19.05.2018 / 12:12

1 resposta

3

(Atualizado para também endereçar VSCode)

Para alguns programas, a solução é apenas adicionar isso a ~/.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>

Para esses programas, depois de fazer isso, você deve obter uma renderização boa e suave, como fiz aqui:

Noentanto,paraoutrosprogramas,comooVisualStudioCode(queusaoElectron),vocêtambémprecisainstalarofreetype2-cleartype.ComoomanualdoArch explica , a causa inicial do problema são as patentes da Microsoft impedindo a renderização de subpixel, e que, em Para corrigir isso, freetype2-cleartype pode ser instalado a partir do AUR manualmente, ou através do seguinte ( note que estou pulando a verificação de assinatura aqui para que funcione para mim):

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

Se você não tem yaourt , você vai querer compilar e instalar isso de seu reporte AUR , e se ao fazer isso você receber erros de GPG e o usual sudo pacman-key --refresh-keys doesn ' t trabalho, você vai querer executar sudo pacman-keys --populate , como explicado aqui .

    
por 19.05.2018 / 12:12