在 Linux 上,DPI(每英寸点数)设置为默认值,例如96
可以在启动参数上全局更改它X
X -dpi 120
这似乎主要影响文本/字体缩放。相比之下,当屏幕分辨率(例如 1920x1080)更改时,这会影响所有内容(窗口/文本/图像/等)。
DPI 仅适用于文本缩放吗?
答案1
深度PI
DPI 代表每英寸点数,是空间打印/显示的衡量标准,特别是 1 英寸(2.54 厘米)跨度内可以排成一行的单个点的数量。计算机的屏幕没有点,但有像素,与之密切相关的概念是每英寸像素数或PPI,因此DPI是通过PPI概念来实现的。默认96
DPI 测量值是垂直和水平 96x96。此外什么是 DPI?它何时重要?视频内容非常丰富。
解决
本机屏幕分辨率表示屏幕物理上具有的像素数(X、Y 水平和垂直)。例如,全高清屏幕 1920x1080 的水平物理像素数为 1920 个,垂直物理像素数为 1080 个,这意味着整个屏幕总共有 2073600 个像素。
与 DPI(每英寸点数)相比,分辨率根本与物理尺寸测量无关,而只是水平/垂直像素数。
Xorg、DPI 和分辨率
X 服务器需要、获取并使用真实/猜测的屏幕空间测量及其分辨率,以实现 DPI/PPI 功能。在桌面配置上,我们确实使用屏幕分辨率和 DPI/PPI 值,每个显示的元素(文本、应用程序等)确实实现了大小调整机制来显示其内容,大多数时候使用像素这就是为什么 DPI 设置不会影响大多数窗口大小,因为它们实现的是像素测量而不是 DPI。另一方面,文本/字体确实实现了 DPI/PPI 测量,并且当 DPI 值改变时它们的大小也会改变。
命令和配置
使用 SDDM 更改 DPI:
# Edit /etc/sddm.conf with the following
[X11]
ServerArguments=-nolisten tcp -dpi 120
使用 Lightdm 更改 DPI:
# Edit /etc/lightdm/lightdm.conf.d/lightdm.conf with the following
[SeatDefaults]
xserver-command=X -dpi 120
获取当前DPI
xdpyinfo | grep dots
xrdb -query | grep dpi
获取屏幕尺寸
# Note that xrandr Xorg extension does not display an accurate measurement
xrandr | grep -w connected
# alternative
xdpyinfo | grep -B2 resolution
获得准确的屏幕测量(需要 sudo/root)
monitor-edid
# or
monitor-edid | monitor-parse-edid
# or
get-edid | parse-edid