我正在尝试查找然后更改12.04和12.10中的屏幕 DPI(每英寸点数)设置。但是,我似乎找不到任何可以执行此操作的应用程序或配置文件。是否有任何应用程序或配置文件?
请注意,此版本适用于12.04+,因此以下内容将不起作用:
而且,它们基本上是在改变字体大小,而不是实际的屏幕DPI。
我正在尝试查找然后更改12.04和12.10中的屏幕 DPI(每英寸点数)设置。但是,我似乎找不到任何可以执行此操作的应用程序或配置文件。是否有任何应用程序或配置文件?
请注意,此版本适用于12.04+,因此以下内容将不起作用:
而且,它们基本上是在改变字体大小,而不是实际的屏幕DPI。
Answers:
这是我先前与Ubuntu 12.04相关的答案的更新版本。在16.04(Xenial)中,需要3个步骤来正确设置DPI,而不是2。
我将在使用Ubuntu 12.04,Gnome Classic和分辨率为1680x1050的显示器的系统示例中进行说明。我的初始设置:xdpyinfo | grep dots
报告96x96 dots
,xrdb -query | grep dpi
报告Xft.dpi: 96
,grep 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.log
和xdpyinfo
值。
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发行版中采用的唯一自定义方式。
org.gnome.desktop.interface
和键scaling-factor
。缺省值为1,只能为整数。适用于HiDPI显示。存在一些使用来获取非整数比例因子的方法xrandr
。检查以下链接:wiki.archlinux.org/index.php/HiDPI(这是Arch知识库,尚未在Ubuntu中测试过)。
从14.04开始,我们有一个选项可以帮助您:
扩展支持
在下图中,我们可以看到字体和标题栏上的缩放比例为0.75:
在下图中,我们可以看到它在字体和标题栏上的缩放比例为1.38:
就我在Ubuntu上的经验来看,更改字体DPI设置所产生的变化远不止是呈现字体的方式。例如,它也适用于图标和菜单大小。
仅仅是Xorg提示桌面环境有关物理显示器的DPI是什么。是的,您可以在Xorg.conf中覆盖它,但是它与更改DE中的设置具有相同的效果。例如在Kubuntu / KDE中:
在2880x1620屏幕上发生了类似的问题。参见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使用的默认字体和默认字体缩放系数。您可以unity-tweak-tool
从Ubuntu软件中心下载。当您打开unity-tweak-tool
请转到“字体”按钮,然后尝试将字体缩放比例更改为1.2或1.25(或更高或更低),以使字体看起来更适合您。在此控制面板上,您还可以更改Unity使用的默认字体。诚然,这种解决方案不能缩放屏幕上的所有内容,只能缩放文本,但是它在166 dpi屏幕上的笔记本电脑上确实能很好地工作。似乎Firefox和Chromium之类的网络浏览器没有注意到此设置设置,但是Firefox和Chromium都允许您在其应用程序设置中设置最小字体大小,以相同方式放大网页上的字体。
在配备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
我也做了上述所有调整:
我几乎打算调整我打算使用的每个应用程序。同样在浏览器中,此缩放还会导致图像模糊(图标,网页上的按钮等),因为它也会被缩放。我希望通过单击或手势将一些图像设置为1:1和2:1大小。
希望它能在2014年10月9日之前添加一些有用的信息。
您可以使用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
启动器和面板可能会消失一会儿,但是将鼠标悬停在它们上面,它们应该会重新出现。您可能还需要调整所有打开的窗口的大小,以使其适合较小的分辨率。
您实际上无法更改显示器的物理ppi。实际的ppi是实际的硬件ppi,但是出于历史原因,大多数软件将采用72 dpi的ppi,尽管现在96 dpi并不罕见。
您可以更改显示器的分辨率,从而更改转换后的ppi,还可以更改字体大小之类的内容。
如果安装MyUnity,则可以更改字体DPI等。
如果您有一个真实的1024x768像素(分辨率)监视器,并且它是真实的72dpi,那么它将是一个17英寸的监视器。如果将字体大小设置为72,则字符的高度将为1英寸。如果将显示设置为800x600分辨率,则字体将较大,而将1600x1200设置将使字体显示较小。