HiDPI 的工作原理是什么?

HiDPI 的工作原理是什么?

我正在测试Ubuntu Bionic、GNOME、elementary OS、KDE、Xfce 4.13(GTK3版本,所有应用程序已移植到GTK3)。

所有发行版都支持跨框架的 hidpi:当我启动 Google Chrome/Firefox/等时。 (GTK 3)、VirtualBox (Qt 5) 或 Spotify (Electron) DE 中的某些组件检测到我的屏幕是 4K 并执行正确的操作,以便应用程序缩放为 2 倍。

Xfce 除外。在 Xfce 中,第三方应用程序不能很好地工作,特别是 Qt 和 Electron 应用程序,它们永远不会以正确的缩放比例启动。

Xfce 4.13 有一个“缩放”选项,您可以使用它来指定您希望所有内容缩放到 x2。但是,即使我这样做,Qt 和 Electron 应用程序也不会选择该设置。除了 Xfce 之外,我还尝试使用 gsettings 设置“GNOME”设置,但无济于事。 Qt 和 Electron 应用程序看起来仍然很糟糕,而在 GNOME 上它们看起来开箱即用。

我的问题是:Ubuntu、Elementary 以及一定程度上的 KDE 如何使使用不同框架的应用程序都能正确扩展?

当然,我知道如何以正确的缩放比例手动启动 Qt 应用程序,但我想知道是什么让这个过程在 Xfce 以外的发行版上如此容易。

是否有一个可以从另一个发行版安装的软件包,使 Xfce 表现得“正确”,这样,如果我启动 GTK3、Qt 或 Electron 应用程序,它们就能正确缩放?是启动器传递一些变量,还是较低级别的组件?

答案1

不幸的是,没有这样的全局选项可以设置。这些分布会为您设置各种变量。

许多应用程序都会考虑该Xft.dpi设置~/.Xresources(这是我设置的唯一选项,但我几乎不使用 GUI 应用程序)

从 Qt 5.6 开始,可以通过导出来指示 Qt 5 应用程序遵守屏幕 DPI

export QT_AUTO_SCREEN_SCALE_FACTOR=1

如果这不起作用尝试

export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=2

GDK 3 (GTK+ 3) 可扩展

export GDK_SCALE=2

电子应用程序很难在 Linux 上处理[1] [2]text-scaling-factor例如,他们尊重GNOME 的选项[3]
这里你别无选择,只能用作--force-device-scale-factor=1.5论证。

详细记录的 Arch Linux HiDPI wiki 页面供进一步阅读

相关内容