如何在linux上获取正确的DPI信息?

问题描述 投票:0回答:1

系统:Ubuntu 20.04.3 LTS

默认分辨率为1280x720,DPI为96。

当调整“分数缩放”为 125% 时,我有两个选项来获取 DPI:

使用命令:

xrdb -query |grep dpi

DPI 是

192
??!

Xft.dpi:    192

使用命令:

xdpyinfo
,DPI为
120

screen #0:
  dimensions:    2048x1152 pixels (433x244 millimeters)
  resolution:    120x120 dots per inch

为什么这两个命令返回不同的 DPI?

缩放到125%时,为什么尺寸是2048x1152? (2048/1280 = 1.6, 1152/720 = 1.6)

是X11 API错误还是其他问题? 谢谢。

x11 dpi
1个回答
0
投票

严格来说,

xrdb
xdpyinfo
都不是查询屏幕像素密度的正确位置。

xrdb
向您显示 DPI 值,因为它是人们可以(但不是必须!)为 Xft 和某些桌面环境设置覆盖 DPI 值的地方,只是“因为”。
xdpyinfo
显示了原始 X11 核心协议中已经存在的大部分值,其中还可以指定屏幕的物理尺寸。问题是,在能够动态连接和删除显示器的现代系统上,事情是通过 XRandR 完成的,并且不再使用在同一 X11 显示器 上驱动多个 X11 屏幕 的功能(这都是现在只有一个 X11 大屏幕)。因此,根据您配置监视器的方式,
xdpyinfo
报告的值会关闭。

要获得正确的像素密度,必须使用 XRandR(CLI 查询/设置工具名称为

xrandr
)来检索有关物理连接的显示器的信息。但请注意,不同像素密度的多个显示器完全有可能显示 X11 屏幕的重叠区域,并且在这些区域内没有明确的 DPI 值可用。

© www.soinside.com 2019 - 2024. All rights reserved.