当前位置: 首页>>技术问答>>正文


如何查找和更改屏幕DPI?

,

问题描述

我试图找到并更改屏幕DPI(每英寸点数)设置在12.04和12.10。但是,我似乎无法找到任何可以执行此操作的应用程序或配置文件。有没有任何应用程序或conf文件?

请注意,这是12.04+,所以以下将无法正常工作:

而且,它们基本上改变了字体大小,而不是实际的屏幕DPI。

最佳解决办法

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

我将以Ubuntu 12.04和Gnome Classic以及分辨率为1680×1050的显示器为例来说明系统的例子。我的开始设置: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年,所有这三个命令的输出都是一致的,并且等于96.虽然这种共识比12.04的混乱要好,但报告的值是硬编码的,并且与真实的DPI值相差甚远。

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

需要警告的是,手动测量方法可能比命令xrandr | grep -w connected的输出更准确,因为较新版本的X服务器忽略EDID报告的大小,并使用屏幕分辨率和DPI的硬编码值计算大小(更多信息here)。如何找到显示器的大小的另一种方法是直接读取其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这个设置不是持久的。在较新的系统中,我们可以在会话开始时添加所需的值。运行”Startup Applications”,按”Add”按钮,将其命名为”Fix DPI”,并在该字段中设置命令xrandr --dpi 90。保存更改和re-login。现在xdpyinfo | grep dots将会报告90x90 dots

如果xdpyinfo仍显示96,则在运行xrandr之前添加超时。编辑”Startup Applications”中的命令并将其更改为:

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

Reference

步骤2对于12.04是可选的,因为在较早的系统中,步骤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设置,并在this指南中进行了描述。我也尝试过,结果是一样的(至少在12.04)。

后记:只有Ubuntu开发人员可以肯定地说,步骤1& 2在现代Ubuntu中非常重要,或者他们被忽略了。只有第3步产生了即时显而易见的更改。鼓励那些认为特定应用可能仍然依赖于X服务器设置的用户执行上述所有3个步骤。剩下的步骤3就足够了 – 这是现代Ubuntu发行版中采用的唯一定制方式。

次佳解决办法

从14.04开始,我们有一个可以帮助你的选项:

扩展支持

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

dpi,ubuntu

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

dpi,ubuntu

第三种解决办法

就我在Ubuntu中的经验而言,改变字体DPI设置的变化远远超过字体渲染的方式。例如,它也适用于图标和菜单的大小。

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

dpi,ubuntu

第四种办法

有一个类似的问题,在2880×1620屏幕上。参见http://ubuntuforums.org/showthread.php?t=2106549通过放置解决

xrandr --output DP-0 --scale 0.75x0.75

进入我的〜/.xprofile

不要”DP-0″,把什么

xrandr

告诉你设备名称。

你可以调整比例,但0.5在屏幕上看起来不太好。

第五种办法

虽然上面给出的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使用的默认字体以及默认字体缩放因子。您可以从Ubuntu软件中心下载unity-tweak-tool。打开unity-tweak-tool时,转到字体按钮并尝试将字体缩放因子更改为1.2或1.25(或更高或更低),以使字体显示为适合您的大小。在此控制面板上,您还可以更改Unity使用的默认字体。无可否认,这个解决方案并没有扩展屏幕上的所有内容,只是文本,但是它在我的笔记本电脑上运行的分辨率为166 dpi,效果非常好。它看起来像Firefox和Chromium这样的网络浏览器并没有注意到这个设置,但是Firefox和Chromium都允许你在他们的应用程序设置中将scale-up字体设置为最小字体大小。

第六种办法

在Ubuntu 14.10中,使用15英寸笔记本电脑,分辨率为1920×1080(345mm x 145mm),密度为143ppi /dpi,我做了以下操作。

在/etc/X11/xorg.conf.d/xorg.conf中,我添加了以下内容:

# xdpyinfo | grep -B2 resolution
# https://wiki.archlinux.org/index.php/xorg#Display_size_and_DPI
Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize             345 195    # In millimeters
EndSection

这将system-wide dpi设置设置为右侧143dpi:

$ xdpyinfo | grep dots
resolution:    142x142 dots per inch

我也做了所有上述调整:

  • 系统设置(在Unity面板中) – >显示 – >菜单和标题栏的缩放比例:1.25

  • 在 chrome ,我开始:chromium-browser –enable_hidpi = 1

  • 在Firefox中,我设置了about:config – > layout.css.devPixelsPerPx:1.4

  • 在atom.io中,我评论了this issue

几乎我需要调整每个应用程序,我打算使用。同样在浏览器中,这种缩放也会导致模糊的图像(图标,网页上的按钮等),因为它也会放大。我很想用单击或手势将图像设置为1:1和2:1大小。

希望它能在2014年10月9日增加一些有用的信息。

第七种办法

安装Ubuntu-Tweak http://ubuntu-tweak.com/

打开它并转到’调整>字体。然后改变’文字缩放因子’

很棒。请享用。

第八种办法

您可以使用xrandr来缩放所有内容,这可能是您要查找的内容。我不确定它在内部是如何工作的,但效果似乎是dpi变化。

要缩放您的分辨率,首先使用xrandr查找显示器的名称:

lars:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768       60.0*+
   1280x768       60.0 +
   1280x720       60.0 +
   1024x768       60.0 +
   1024x600       60.0 +
   800x600        60.0 +
   800x480        60.0 +
   720x480        60.0 +
   640x480        60.0 +
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

所以,在我的情况下,我的笔记本电脑显示器被称为LVDS。

然后运行以下命令来扩展您的分辨率:

xrandr --output LVDS --scale 0.75x0.75

启动器和面板可能会消失一会儿,但只要将光标悬停在它们上面,它们就会重新出现。您可能还必须调整任何打开的窗口大小,以使其适合较小的分辨率。

第九种办法

正如我在Ubuntu GNOME中寻找windows HiDPI扩展的这个问题所结束的,这里是我对随机建议的补充,以便在我再次需要时找到它。 🙂

要访问此对话框,请打开Gnome Tweaks并转到Windows部分。

dpi,ubuntu

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/879.html,未经允许,请勿转载。