如何查找和更改屏幕 DPI?

如何查找和更改屏幕 DPI?

我正在尝试找到并改变屏幕12.04 和 12.10 中的 DPI(每英寸点数)设置。但是,我似乎找不到可以执行此操作的任何应用程序或配置文件。是否有任何应用程序或配置文件可用于此?

请注意,这是针对 12.04+ 的,因此以下内容将不起作用:

此外,他们基本上是在改变字体大小,而不是实际的屏幕 DPI。

答案1

这是我之前回答的更新版本,与 Ubuntu 12.04 有关。在 16.04 (Xenial) 中,需要 3 个步骤才能正确设置 DPI,而不是 2 个步骤。

我将以 Ubuntu 12.04 和 Gnome Classic 以及分辨率为 1680x1050 的显示器为例进行解释。我的起始设置:xdpyinfo | grep dots报告96x96 dotsxrdb -query | grep dpi报告Xft.dpi: 96grep DPI /var/log/Xorg.0.log报告一些奇怪的设置NOUVEAU(0): DPI set to (90, 88)

在 16.04 中,所有这 3 个命令的输出都是一致的,等于 96。虽然这种一致性比 12.04 的混乱要好,但报告的值是硬编码的,与真实的 DPI 值相差甚远。

让我们计算一下我的显示器的最佳 DPI。可以使用命令xrandr | grep -w connected(将输出转换为厘米)或手动使用长尺找到屏幕的实际尺寸。在我的情况下:X = 47.4cmY = 29.6cm。将它们除以 2.54 可得到英寸大小:X ~ 18.66inY ~ 11.65in。最后将实际点数(基于您的分辨率)除以英寸大小:X = 1680/18.66 ~ 90dpiY = 1050/11.65 ~ 90dpi。所以我的实际 dpi 是 90。

被警告,手动测量方法可能比命令的输出更准确,xrandr | grep -w connected因为较新版本的 X 服务器会忽略 EDID 报告的大小,并使用屏幕分辨率和 DPI 的硬编码值来计算大小(更多信息这里)。
另一种查找显示器尺寸的方法是直接读取其 EDID。安装read-edid包并在终端中运行命令sudo get-edid | parse-edid | grep DisplaySize。其输出将以毫米为单位给出显示器的实际尺寸。如果没有 - 使用标尺。

让我们开始修复DPI:

1)在12.04运行中gksudo gedit,打开/etc/lightdm/lightdm.conf并在部分下添加参数[SeatDefaults]

xserver-command=X -dpi 90

16.04 中默认没有这个文件,所以必须lightdm.conf手动创建并放入/etc/lightdm/lightdm.conf.d/。这个文件的内容是一样的:

[SeatDefaults]
xserver-command=X -dpi 90

重新启动计算机或重新启动 X。现在grep DPI /var/log/Xorg.0.log将显示所需的设置。

2)在我之前的回答中,我建议创建一个/etc/X11/Xsession.d/包含字符串的文件xrandr --dpi 90。这在 12.04 中有效,但在 16.04 中,此设置不是持久的。在较新的系统中,我们可以在会话启动时添加所需的值。运行“启动应用程序”,按“添加”按钮,将其命名为“修复 DPI”,然后在xrandr --dpi 90字段中设置命令。保存更改并重新登录。现在xdpyinfo | grep dots将报告90x90 dots

如果xdpyinfo仍然显示 96,则在运行前添加超时xrandr。编辑“启动应用程序”中的命令并将其更改为:

bash -c "sleep 15; xrandr --dpi 90"

参考

对于 12.04 来说,步骤 2 是可选的,因为在旧系统中,步骤 1 会修复Xorg.0.logxdpyinfo值。

3)在 GNOME3 中,DPI 设置被硬编码为 96,无法直接更改,但可以缩放文本。计算所需的乘数:(desired_DPI / 96在我的情况下90/96 = 0.9375)。现在运行命令(或使用,dconf如果你愿意):

gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375

更改将立即应用。xrdb -query | grep dpi将报告所需的Xft.dpi: 90

附言还有另一种修复 DPI 设置的方法,但这种方法要困难得多,具体描述如下指南。我也尝试了,结果是一样的(至少在 12.04 中)。

后记:只有 Ubuntu 开发人员才能确定步骤 1 和 2 修改的值在现代 Ubuntu 中是否真的很重要,或者它们被默默忽略了。只有步骤 3 会产生可以立即注意到的更改。那些认为某些应用程序可能仍然依赖 X 服务器设置的用户建议执行上述所有 3 个步骤。对于其余部分,步骤 3 就足够了 - 这是现代 Ubuntu 发行版中采用的唯一自定义方式。

答案2

从 14.04 开始我们有一个有点帮助的选项:

扩展支持

在下面的图片中我们可以看到它的缩放比例为0.75关于字体和标题栏:

在此处输入图片描述

在下面的图片中我们可以看到它的缩放比例为1.38关于字体和标题栏:

在此处输入图片描述

答案3

就我在 Ubuntu 中的经验而言,更改字体 DPI 设置不仅仅会改变字体的渲染方式。它还适用于图标和菜单的大小等。

只是 Xorg 会提示桌面环境物理显示器的 DPI 是多少。是的,您可以在 Xorg.conf 中覆盖它,但它与更改 DE 中的设置具有相同的效果。例如在 Kubuntu/KDE 中:

在此处输入图片描述

答案4

尽管上面给出的xserver-command=X -dpi ...xrandr --dpi ...可能在早期版本的 Ubuntu 中运行得很好,但在 Ubuntu 13.10(我拥有的版本)中,Unity 会忽略这些设置并保持 dpi 固定(就 X 服务器而言为 96 dpi)。

xrandr --scale ...命令确实按所述缩放了屏幕,但缩放方式使得文本和图标有点模糊。但它有效。

在 Ubuntu 13.10 中,最好的选择可能不是尝试更改 X 服务器的 dpi 设置,而是使用来unity-tweak-tool更改 Unity 使用的默认字体和默认字体缩放因子。您可以unity-tweak-tool从 Ubuntu 软件中心下载。打开后,unity-tweak-tool转到“字体”按钮并尝试将字体缩放因子更改为 1.2 或 1.25(或更高或更低)以使字体显示为适合您的大小。在此控制面板上,您还可以更改 Unity 使用的默认字体。不可否认,这个解决方案并不能缩放屏幕上的所有内容,只缩放文本,但它在我的笔记本电脑(166 dpi 屏幕)上运行得很好。似乎 Firefox 和 Chromium 等 Web 浏览器没有注意到这个设置,但 Firefox 和 Chromium 都允许您在其应用程序设置中设置最小字体大小,以以相同的方式放大网页上的字体。

相关内容