使用 Windows 默认缩放比例和 WSL GUI 应用程序 (HiDPI) 时字体模糊

使用 Windows 默认缩放比例和 WSL GUI 应用程序 (HiDPI) 时字体模糊

有没有办法修复使用默认 Windows 缩放比例从 WSL(Ubuntu 18.04)运行时 Linux GUI 应用程序中的模糊字体?到目前为止,我尝试过的方法:
使用 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,有同样的问题。

截图

  • 克莱昂:

克利昂

  • emacs(WSL)与 VS Code(Windows 原生)的比较

emacs(WSL)与 VS Code(Windows 原生)的比较

我迄今为止查找过的所有资源:

  1. 为什么使用 Xming 渲染的 WSL GUI 应用程序字体模糊?:这里的答案专门针对基于 Firefox 和 Electron 的应用程序。
  2. Gnome-Terminal 在 Xming 上模糊不清:除了建议禁用缩放并使用 Xming 以外的其他东西之外,没有任何特别有用的信息。
  3. 在 4K 屏幕上运行 GUI 程序时出现 DPI 问题:建议使用VcXsrv。

这样做的主要目的是能够从 WSL 运行文本编辑器 (emacs)/IDE (Clion)。而且,我无法安装其 Windows 等效版本的原因是我们只针对 Linux 进行开发。

一些系统细节:

屏幕

4K(3840x2160)-15.6英寸

操作系统

  • 视窗:Windows 10 家庭版 v1803 内部版本:17134.345

  • 西弗吉尼亚海岸: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 服务器可执行文件启用高 DPI 设置。关闭该 X 服务器的任何正在运行的实例。打开您已安装 X 服务器的文件夹,例如 VcxSrv、Xming、X410 等。这里我选择D:\MyFolderVcxSrv 作为示例。打开该文件夹,右键单击vcxsrv.exeVcxSrv 或Xming.exeXming。选择属性 > 兼容性选项卡 > 更改高 DPI 设置 > 启用覆盖高 DPI 缩放 > 更改为“应用程序”(或“系统增强”选项)。以下是更改设置后的屏幕截图:

启用_Dpi_Awareness_vcxsrv

对文件也执行上述步骤xlaunch.exe。此更改将添加以下注册表值:

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"D:\\MyFolder\\xlaunch.exe"="~ HIGHDPIAWARE"
"D:\\MyFolder\\vcxsrv.exe"="~ HIGHDPIAWARE"

接下来,覆盖 X11 环境的 GTK+ 设置。这篇 Gnome 文章深入了解环境变量。GDK_SCALE将按特定因子缩放窗口。GDK_DPI_SCALE将缩放 DPI 以适应缩放感知应用程序。在 bash(或其他 shell)中使用以下命令启用设置。

export GDK_SCALE=0.5
export GDK_DPI_SCALE=2

根据您的系统更改这些值。现在执行 X 服务器和 X11 程序。这个reddit帖子也有帮助。

相关内容