如何查找和更改屏幕DPI?


86

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

请注意,此版本适用于12.04+,因此以下内容将不起作用:

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


1
我正在尝试锻炼如何在每台显示器上使用不同的dpi。
ctrl-alt-delor

1
@richard,您好,如果您愿意,我们很乐意在这里提供您的步骤和结果。谢谢。
Luis Alvarado

Answers:


117

这是我先前与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中,所有这三个命令的输出都是一致的,等于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的硬编码值来计算大小(此处提供更多信息))。
查找监视器尺寸的另一种方法是直接读取其EDID。安装read-edid软件包并sudo get-edid | parse-edid | grep DisplaySize在终端中运行命令。它的输出将为您提供显示器的实际大小(以毫米为单位)。如果不是,请使用标尺。

让我们开始修复DPI:

1)在12.04 run中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/包含string 的文件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步对于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

PS还有另一种修复DPI设置的方法,该方法要困难得多,指南对此进行了介绍。我也尝试过,结果是相同的(至少在12.04中)。

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


2
这是一个充满新信息的非常完整的答案(喜欢整个事情)。谢谢惠特格。+1
路易斯·阿尔瓦拉多

2
感谢您的高分。我花了几天的时间在各个地方进行挖掘以解决问题,现在很高兴与大家分享。
Whtyger 2013年

1
这里有一个电子表格为您节省一点时间计算值:docs.google.com/spreadsheet/...
汤姆Carchrae


1
@RaffiKhatchadourian其中有架构org.gnome.desktop.interface和键scaling-factor。缺省值为1,只能为整数。适用于HiDPI显示。存在一些使用来获取非整数比例因子的方法xrandr。检查以下链接:wiki.archlinux.org/index.php/HiDPI(这是Arch知识库,尚未在Ubuntu中测试过)。
whtyger

28

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

扩展支持

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

在此处输入图片说明

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

在此处输入图片说明


3
这在Ubuntu 14.04(德语:“Anzeigegeräte”)中对我有用,我不得不将默认字体缩放系数恢复为1.0(我将其设置为2.0之前),然后在“所有设置”->“ Darstellung”中重新调整Launcher-Icon的大小。 “
rubo77 2014年

4
那不是只更改菜单和标题栏,包括启动器,而不更改总DPI吗?
约翰·斯科特

1
@FuzzyToothpaste就是为什么我说“有帮助”。那一点是,当您降低比例时,除了更改菜单,标题栏和启动器图标外,由于更改,窗口的实际大小将更小。因此,如果您具有1280x720的分辨率(例如笔记本电脑),并且希望将窗口安装在720内,这会有所帮助。将比例降低到0.8或更小将“感觉”到就像使用1080而不是720。当然是像Apple产品一样使用Non Hi-DPI。我猜想在这些类型的硬件上效果会更大。
Luis Alvarado 2014年

您好,对不起我的评论;我想通过xserver会话在您的图片上显示“显示设置”:有办法吗?

9

就我在Ubuntu上的经验来看,更改字体DPI设置所产生的变化远不止是呈现字体的方式。例如,它也适用于图标和菜单大小。

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

在此处输入图片说明


3
是否有此字体管理器的Ubuntu(Unity)版本。
Luis Alvarado

@LuisAlvarado不,看来这仅是GNOME2和KDE提供的功能。
gertvdijk

8

在2880x1620屏幕上发生了类似的问题。参见http://ubuntuforums.org/showthread.php?t=2106549 通过放置来解决

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

进入我的〜/ .xprofile

代替“ DP-0”,输入任何内容

xrandr

告诉您设备名称。

您当然可以调整比例,但在我的屏幕上0.5似乎不怎么好。


3
这只是一个解决方法,使您失去真正的分辨率。使用此缩放比例,您的监视器仅显示一半像素,而不是以缩放后的分辨率重新呈现它
2014年

1
不幸的是,使用此方法时,鼠标不能以与屏幕相同的速度缩放:-(当按比例缩小时,这是无害的,因为鼠标只是在屏幕外部浏览空白空间,但是当放大以使复杂的应用程序可以很好地显示时在较小的屏幕上,鼠标无法到达屏幕边缘,因此在这种使用情况下无法使用
marsbard 2014年

7

尽管上面提到的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之类的网络浏览器没有注意到此设置设置,但是Firefox和Chromium都允许您在其应用程序设置中设置最小字体大小,以相同方式放大网页上的字体。


好研究卡尔。
Luis Alvarado 2014年

5

在配备15英寸笔记本电脑,1920x1080分辨率(345mm x 145mm)和143ppi / dpi密度的Ubuntu 14.10中,我执行了以下操作。

在/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

这会将系统范围的dpi设置设置为正确的143dpi:

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

我也做了上述所有调整:

  • 系统设置(在Unity面板中)->显示->菜单栏和标题栏的比例:1.25
  • 在铬中,我开始于:铬浏览器--enable_hidpi = 1
  • 在Firefox中,我在about:config-> layout.css.devPixelsPerPx中设置:1.4
  • 在atom.io中,我对此问题发表了评论

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

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


我认为您可以通过缩放12的倍数来解决模糊问题。在您自己的情况下,将dpi设置为144
Martin Konecny 2015年

+1以在您的信息中添加日期。有时我会这样做,但是您提醒我我需要更频繁地这样做。(提示其他所有人)。
WinEunuuchs2Unix


3

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

启动器和面板可能会消失一会儿,但是将鼠标悬停在它们上面,它们应该会重新出现。您可能还需要调整所有打开的窗口的大小,以使其适合较小的分辨率。


这模糊了输出
Beernarrd

2

当我最后一个问题在Ubuntu Gnome中寻找Windows HiDPI缩放比例时,这是我对随机建议的补充,以便在需要时可以找到它。:)

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

Gnome调整-Windows


0

我正在使用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

-2

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

您可以更改显示器的分辨率,从而更改转换后的ppi,还可以更改字体大小之类的内容。

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

如果您有一个真实的1024x768像素(分辨率)监视器,并且它是真实的72dpi,那么它将是一个17英寸的监视器。如果将字体大小设置为72,则字符的高度将为1英寸。如果将显示设置为800x600分辨率,则字体将较大,而将1600x1200设置将使字体显示较小。


诸如“ UseEDIDDpi”和“ DPI”之类的xorg选项呢?我已经读到,例如,第一个可以禁用从视频卡读取EDID的功能,以防万一读取错误,并且可以使用DPI更改DPI。这就是令我困惑的地方。
Luis Alvarado 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.