如何查找和更改屏幕DPI?

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

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

  • 如何更改字体DPI设置?
  • 如何在11.10中更改屏幕DPI?
  • 是否可以在11.04中更改字体DPI?

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

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

我将用Unntu 12.04和Gnome Classic以及分辨率为1680×1050的显示器来解释系统示例。 我的开始设置: xdpyinfo | grep dots xdpyinfo | grep dots报告96x96 dotsxrdb -query | grep dpi xrdb -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找到屏幕的实际大小 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的输出更准确 xrandr | grep -w connected因为较新版本的X服务器忽略了EDID报告的大小,并使用屏幕分辨率和DPI的硬编码值计算大小( 此处有更多信息)。
如何找到监视器大小的另一种方法是直接读取其EDID。 安装read-edid包并运行命令sudo get-edid | parse-edid | grep DisplaySize sudo get-edid | parse-edid | grep DisplaySize 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 xdpyinfo | grep dots将报告90x90 dots

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

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

参考

步骤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 xrdb -query | grep dpi将报告所需的Xft.dpi: 90

PS还有另一种修复DPI设置的方法,这个方法要困难得多, 本指南对此进行了描述。 我也尝试过,结果是一样的(至少在12.04)。

后记:只有Ubuntu开发人员可以肯定地说,在现代Ubuntu中,步骤1和2修改的值是否真正重要,或者它们是否会被默默忽略。 只有第3步产生的变化立即引人注目。 那些认为某些应用仍然依赖于X服务器设置的用户被鼓励执行上述所有3个步骤。 对于其余的步骤3就足够了 – 这是现代Ubuntu发行版中采用的唯一定制方式。

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

扩展支持

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

在此处输入图像描述

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

在此处输入图像描述

就我在Ubuntu中的经验而言,更改字体DPI设置的变化远不止字体呈现的方式。 它也适用于图标和菜单的大小。

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

在此处输入图像描述

在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中的每一个都允许您在其应用程序设置中设置最小字体大小,以便以相同方式放大网页上的字体。

在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 "" DisplaySize 345 195 # In millimeters EndSection 

这将系统范围的dpi设置设置为右143dpi:

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

我也做了上面提到的所有调整:

  • 系统设置(在Unity面板中) – >显示 – >缩放菜单和标题栏:1.25
  • 在铬中,我从:chrome-browser –enable_hidpi = 1开始
  • 在Firefox中我设置了about:config – > layout.css.devPixelsPerPx:1.4
  • 在atom.io中,我评论了这个问题

几乎我需要调整每个应用程序,我打算使用。 此外,在浏览器中,此缩放还会导致图像模糊(图标,网页上的按钮等),因为它也会变焦。 我希望通过单击或手势将一些图像设置为1:1和2:1大小。

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

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

打开它然后转到’Tweaks>字体’。 然后更改“文本缩放系数”

效果很好。 请享用。

您可以使用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 

启动器和面板可能会暂时消失,但只需将光标hover在它们上面即可重新出现。 您可能还需要调整任何打开的窗口大小,以使它们适合较小的分辨率。

当我最终在Ubuntu Gnome中寻找Windows HiDPI扩展这个问题时,这是我对随机建议的补充,以便我在需要它时再找到它。 🙂

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

Gnome Tweaks  -  Windows

我正在使用Zorin8(基于Ubuntu13.x)。

您可以使用鼠标缩放屏幕(1024/800 = 1.28,768 / 600 = 1.28):

 xrandr --output LVDS1 --mode 800x600 --panning 1024x768 --scale 1.28x1.28 

或者只是平移屏幕,因此您必须使用鼠标来查看屏幕上不可见的部分:

 xrandr --output LVDS1 --mode 800x600 --panning 1024x768 

您实际上无法更改显示器的物理ppi。 实际的ppi是实际的硬件ppi,但是由于历史原因,大多数软件将假设ppi为72 dpi,尽管96 dpi现在并不少见。

您可以更改显示器的分辨率,这会更改已翻译的ppi,您可以更改字体大小等内容。

如果您安装MyUnity,您可以更改字体DPI等。

如果你有一个真正的1024×768像素(分辨率)显示器,它是真正的72dpi,它将是一个17“显示器。如果你设置字体大小为72,那么一个字符将是1”高。 如果将显示器设置为800×600分辨率,则字体会更大,而设置1600×1200则会使字体显得更小。