当我尝试使用 Xming 和 WSL 运行 GUI 程序时,我会看到具有灰度抗锯齿的字体,就像 Firefox 一样,如下所示:
我尝试过的每个发行版(Arch 和 Ubuntu)都会发生这种情况,这让我想戳瞎自己的眼睛,但我无论如何也想不出如何解决这个问题。
(笔记:如果您的屏幕 DPI 较高,图像将会模糊 - 您可以按 F12 并运行此 Javascript 代码来缩小尺寸:document.body.style.zoom = 1 / window.devicePixelRatio
。)
这个问题的原因是什么?是 Xming 的问题还是发行版的问题?我尝试按照 Xming 网站上的所有建议操作,但无济于事。
答案1
(已更新,同时解决 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>
对于这些程序,执行此操作后,您应该获得漂亮、流畅的渲染,就像我在这里所做的那样:
然而,对于其他程序,例如Visual Studio 代码(使用 Electron),你还需要安装freetype2-cleartype
。如 Arch 手册所述解释,问题的最初原因是微软专利阻止了子像素渲染,为了解决这个问题,freetype2-cleartype
可以从 AUR 手动安装,或者通过以下方式安装(笔记我在这里跳过签名检查以使其适合我):
yaourt --m-arg "--skippgpcheck" -S --needed freetype2-cleartype
如果你没有yaourt
,你会想要编译并安装从其 AUR 存储库,如果在执行此操作时出现 GPG 错误,并且通常的方法sudo pacman-key --refresh-keys
不起作用,您需要sudo pacman-key --populate
按照说明运行这里。