如何在 Xenial 中强制 DPI 设置?

如何在 Xenial 中强制 DPI 设置?

在 Ubuntu Xenial 中是否可以强制特定的 DPI 设置?

食谱中提到我可以将 dpi 标志传递给 lightdm 来为 X 设置正确的 DPI 吗?不再工作:

  • 我可以成功地将-dpi...选项传递给 X 服务器,
  • 我确实看到Xorg.0.logX 服务器使用了该选项(实际上,没有这个选项,它也能根据显示器的物理尺寸成功计算出正确的 DPI),
  • 但即使在登录屏幕上,DPI 设置也被设置回 96,根据(我已经使用 xterm 检查过这一点,从具有适当和手动设置的xdpyinfo文本控制台启动)。$DISPLAY$XAUTHORITY

所以问题是:是否可以更改 DPI?或者我应该直接放弃与 GNOME 相关的一切(因为这个“无法修复”) 直到更多理智的开发人员加入 GNOME 团队?

答案1

我目前无法在 Xenial 上进行测试,但是这里有一个修复程序,可以解决我在 Trusty 上与 DPI 相关的问题,而其他修复程序均不起作用。

问题:当我将我的一台 19 英寸 1280x1024 显示器换成一台 17 英寸 1280x1024 显示器并重新启动时,我的字体变小了并且看起来“不对”(我没有足够的词汇来表达,但我认为这与抗锯齿与糟糕的 DPI 设置相互作用有关)。

更糟糕的是,GTK+ 2.x 应用程序给人一种令人困惑的印象,即它们忽略了字体大小设置。(如果我更改了字体或样式,应用程序会更新,但即使重新启动应用程序也不会导致从 11pt 变为 12pt 或 14pt 产生任何可见效果。不过,我没有针对 GTK+ 3.x 测试该症状。)

解决方案:X11资源Xft.dpi

确认有效于:GTK+ 2.x、GTK+ 3.x 和 Qt 4 应用程序

对于您的情况,请尝试在您的系统上运行此程序,然后重新启动您的应用程序:

echo Xft.dpi: 75 | xrdb -merge

笔记:您可能需要等待和/或重新启动两次。当我使用file-roller144 DPI 测试 GTK+ 3.x 时,在将 DPI 重新设置为 96 后,第一次测试时它仍保持在 144 的范围内,但第二次退出并重新启动后它又恢复到了预期的范围内。

如果这解决了问题,请Xft.dpi: 75在 中添加一行来解决这个问题~/.Xresources

如果问题没有解决,请尝试使用其他值,以确保您了解系统如何处理您给出的值。我必须将 DPI 设置为 96 才能获得所需的比例,而我昏昏欲睡的头脑中没有想到这一点,直到我尝试了 72 DPI,字体缩小了而不是变大了。

(用 17 英寸显示器替换发生故障的最左边的 19 英寸显示器是一个在线更换,并且我已禁用 KDE 的显示设置守护进程,因此我预期所有三个显示器都以从 19 英寸 1280x1024 显示器计算出的固定 DPI 设置运行。)

如果~/.Xresources版本无效,您的桌面可能缺少常规调用来xrdb应用它们。我通常将其添加xrdb -merge ~/.Xresources为登录时要运行的最后一项操作之一,这样它就不会与桌面可能尝试完成的其他操作发生冲突。

答案2

你可以在运行时直接使用 xrandr 设置 dpi

xrandr --output <outputname> --dpi <dpi>

或者在 /etc/lightdm/lightdm.conf 文件中

xserver-command=X -dpi 75

并看到使用

xdpyinfo | grep resolution

并非所有驱动程序和屏幕输出的组合都支持 DPI 缩放,如果您无法在命令行上执行此操作,则 lightdm 也不太可能执行此操作。

您还会发现一些应用程序(尤其是较旧或非原生 gtk)在非标准 DPI 下无法正常显示,在某些情况下甚至完全无法使用。随着更高 dpi 屏幕成为常态,这种情况会随着时间的推移而改善。

相关内容