Warum werden WSL-GUI-Apps mit verschwommenen Schriftarten mit Xming gerendert?

982
Mehrdad

Wenn ich versuche, Xming mit WSL zum Ausführen von GUI-Programmen zu verwenden, sehe ich Schriften mit Graustufen-Anti-Aliasing, wie bei Firefox, wie Sie hier sehen können:

Bildschirmfoto

Dies passiert bei jeder Distribution, die ich ausprobiert habe (Arch und Ubuntu), und ich möchte meine Augen ausstrecken, aber für mein Leben kann ich nicht herausfinden, wie ich das reparieren kann.

( Hinweis: Wenn Sie einen Bildschirm mit hoher DPI-Auflösung haben, wird das Bild verschwommen. Sie können die Taste F12 drücken und den folgenden Javascript-Code ausführen, um die Bildgröße zu verringern document.body.style.zoom = 1 / window.devicePixelRatio.)

Was ist die Ursache dieses Problems? Ist das Problem mit Xming oder mit der Distribution? Ich habe versucht, alle Ratschläge auf Xmings Website ohne Erfolg zu befolgen.

3
Ist das nur für Arch? Ich sah vorher nicht so nah aus. Biswapriyo vor 5 Jahren 0
@Biswapriyo: Weißt du, ich hatte dieses Problem auch auf einem älteren Ubuntu (16.04, denke ich?), Aber jetzt probiere ich es auf dem Ubuntu, das ich gestern installiert habe (18.04, Test über `xterm -fa 'Ubuntu Mono' -fs 12`, wie ich es früher für Arch hatte) Ich habe dieses Problem offenbar nicht. Nicht sicher, was der Grund sein könnte. Mehrdad vor 5 Jahren 0
@Biswapriyo: Ich habe es herausgefunden - weil ich dasselbe Home-Verzeichnis verwende, das die gleiche `fonts.conf` hat. Das ist auch die Lösung für Ubuntu. Mehrdad vor 5 Jahren 0

1 Antwort auf die Frage

4
Mehrdad

(Aktualisiert, um auch VSCode zu adressieren)

Für einige Programme besteht die Lösung darin, Folgendes hinzuzufügen ~/.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> 

Nachdem Sie dies getan haben, sollten Sie für diese Programme ein schönes, flüssiges Rendering erhalten, wie ich es hier getan habe:

Screenshoot

Für andere Programme, z. B. für Visual Studio Code (der Electron verwendet), müssen Sie jedoch auch installieren freetype2-cleartype. Wie das Handbuch von Arch erklärt, besteht die ursprüngliche Ursache des Problems in den Microsoft-Patenten, die das Subpixel-Rendering verhindern. Um dies zu beheben, freetype2-cleartypekann AUR entweder manuell oder über die folgenden installiert werden ( beachten Sie, dass hier die Signaturprüfung übersprungen wird) lass es für mich funktionieren):

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

Wenn Sie dies nicht getan haben yaourt, müssen Sie dies von seinem AUR-Repo aus kompilieren und installieren. Wenn Sie dabei GPG-Fehler erhalten und das Übliche nicht funktioniert, sollten Sie es wie hier beschrieben ausführen .sudo pacman-key --refresh-keyssudo pacman-keys --populate