是否有任何 Ubuntu 版本可以一致地处理 HiDPI?

是否有任何 Ubuntu 版本可以一致地处理 HiDPI?

尽管我知道如何进行这儿或那儿的调整......

我想知道是否有任何 Ubuntu 16.04(或更新版本)变体专门用于或可以“开箱即用”地与 HiDPI 屏幕配合使用。

就此而言,了解任何与 HiDPI 配合良好的优秀且最新的 Linux 发行版都会很有趣......

更新:

感谢您的回答,但我并不想调整我的机器。我知道这些调整,并且我已经使用了其中的一些。我的问题更多的是哪个 Ubuntu 版本(例如 Mate、Mint 等)可以很好地处理 HiDPI。对于 Ubuntu Mate 来说,这是他们路线图的一部分,但还没有实现。我想知道是否已经有可用的功能。

答案1

没有,目前还没有——看答题者注在最后。

什么是“一致”

在反对此答案之前,请务必理解 OP 的问题。鉴于需要手动设置桌面环境的 DPI 值或比例因子(因显示器不同而不同),我们不能说 Ubuntu“始终如一地处理 HiDPI”。

我认为“一致”更倾向于开箱即用的体验(甚至 OP 也在问题中提到了这一点)。也就是说,操作系统能够针对任何给定的硬件和遵循这些设置的应用软件使用适当的设置。

Ubuntu 是否提供开箱即用的 HiDPI 支持体验?没有,或者不确定。

Ubuntu 的 HiDPI 支持

Trusty Tahr(14.04)是第一个明确提到 HiDPI 支持的 Ubuntu 版本。甚至在此版本之前,相关信息可以追溯到这条过时的消息

ubuntu-desktop ppa 中的 cairo 1.13 快照(Hi-DPI 支持测试)

更好地支持 Hi-DPI 屏幕是即将推出的 LTS 正在讨论的一个主题 [...]

TrustyTahr/发布说明对于 14.04:

XenialXerus/发布说明对于 16.04:

  • 改进了欢迎界面中的 HiDPI 支持
  • 支持在 HiDPI 环境中缩放光标

为其他人提供 HiDPI 支持

来自博客文章Kubuntu 和 HiDPI 屏幕2016 年 2 月 16 日,作者:Giri Alam:

Kubuntu/KDE 在 HiDPI 屏幕上并不完美。目前,没有实用程序可以根据设备屏幕分辨率和每英寸点数 (DPI) 值自动检测和缩放 UI,但让 Kubuntu 在 HiDPI 屏幕上更易用的解决方法非常简单。

来自博客文章Ubuntu MATE 16.10 Alpha 12016 年 6 月下旬,在 Ubuntu MATE 博客上:

我们初步实现了 HiDPI 支持(几乎)。不要太兴奋,这是一个全有或全无的实现。启用后,所有 GTK3+ 应用程序(不仅仅是 MATE)都将使用高质量像素加倍进行渲染。如果您有 2160p 显示器,它看起来很棒 :-D

然而,Ubuntu MATE 16.10 最终发行说明

来自 GNOME WikiHowDoI/HiDpi

当屏幕分辨率至少为 192 dpi 且屏幕高度(以设备像素为单位)至少为 1200 时,GNOME 当前启用高 dpi 支持。

BudgieRemix 的 reddit 主题发布于 2016 年 6 月中旬,在成为 Ubuntu Budgie 之前:

任何本机设置菜单或锁定屏幕上似乎都没有 HiDPI 支持。Ubuntu 16.04 为 HiDPI 显示器添加了锁定/登录屏幕上的缩放功能。[...] 使用缩放系数 2 正确缩放所有内容,但是有一个问题。[系统托盘中的图标] 无法缩放,也无法正确显示。

而唯一的答复是:

开发团队的现有成员都没有 HiDPI 显示器,因此我们无法重现您提出的问题 :(

整体 HiDPI 支持

虽然我没有在这里引用其他来源,但提到最多的 HiDPI 支持版本是 Ubuntu GNOME 和 Ubuntu (Unity)。有人提到 Kubuntu/KDE 和 Xubuntu/Xfce,但关于这些版本实际适用的硬件的信息并不多。

免责声明:本回答旨在回顾 2016 年 Ubuntu 及其官方版本对 HiDPI 的支持情况。请注意以下限制。

  • 有些口味根本没有提及,因为这些口味没有与 HiDPI 支持相关的信息

  • 没有提及非 Ubuntu 版本或非官方衍生版本,例如 Linux Mint/Cinnamon、elementary OS/Pantheon

  • 我没有任何 HiDPI 显示器或支持 HiDPI 的硬件来验证上述信息;此答案仅引用来自网络的相关信息

总结无论发行版和桌面环境如何,HiDPI 支持都在进行中。目前还没有任何 Ubuntu 版本可以一致地处理 HiDPI。


答题者注:自从首次撰写此答案以来,HiDPI 支持可能已得到改进。因此,此答案现在是一个社区 wiki,因此任何具有最低声誉的人都可以改进此帖子,以跟上如何使 HiDPI 支持与 Ubuntu 的新版本和官方版本保持一致。

答案2

问题

这是我写过的最奇怪的答案。升级到 Ubuntu 16.04 时,我必须在此屏幕上将缩放因子设置为 1.4:

屏幕缩放

我知道它说的是 1.5 但是 1.4 效果更好而且我也尝试过 1.25。

接下来我必须进入 Google Chrome 并在设置中设置“大字体”。或者,我尝试将缩放系数设置为 110% 和 125%。

解决方案

我通过偶然使用Ctrl++ AltF5登录控制台并输入解决了这个问题startx。然后使用Ctrl++ AltF1登录控制台并输入sudo reboot

登录后,所有图标和菜单行都放大了很多,我将显示器缩放比例(如上图所示)重置为 1.0。然后,我必须将 Google-Chrome 字体大小从“大”更改为“正常”。

说明

除非这件事发生在我身上,我自己都不会相信这个解决方案。

xrandr --listmonitors然后我发现了显示以下命令:

$ xrandr --listmonitors
Monitors: 2
 0: +*LVDS1 1920/382x1080/215+0+1080  LVDS1
 1: +HDMI1 1920/1107x1080/623+0+0  HDMI1

请注意,17 英寸笔记本电脑显示屏 (LVDS1) 的屏幕尺寸为 382x215 毫米,50 英寸电视的屏幕尺寸为 1107x623 毫米。这对我受益匪浅的新 DPI 缩放起着重要作用,但我没有经验来学术性地解释它。

所以是的,这是一个令人难以置信的答案,如果不是发生在我身上,我不会相信它。我相信一定有更好的方法,比如重新配置 X,也许通过删除配置文件以便自动重建它,但我不知道更短的解决方案。

证据

最终结果才是最重要的:

屏幕无缩放

答案3

即使调整了字体和窗口大小,一些程序仍然“不喜欢”HiDPI 屏幕,因为它们的程序员没有告诉程序如何支持它。这在一定程度上是应用程序支持的问题。在 Windows 上,一些程序有同样的问题。Windows 所做的是缩放整个窗口,使它看起来像像素化的东西。

有些答案建议你在启动程序之前创建脚本来更改屏幕分辨率。我认为这太尴尬了。我个人觉得虚拟放大镜非常有用。

放大镜程序已经在这里讨论过了:Ubuntu 有放大镜应用吗?我想用鼠标在屏幕的某个部分使用边界框,然后将其放大以供我们的眼睛缩放

在这里我将向你展示如何使用Compiz 配置设置管理器的默认放大镜。

  1. 启动 Compiz 配置设置管理器(如果没有,请先安装)

  2. 点击无障碍设施选项卡。在右侧,点击增强型 Zoom 桌面

  3. 使能够放大键缩小键。根据我的喜好,我将它们设置为Ctrl+ Super+=Ctrl+ Super+ -

  4. 如果默认同步鼠标平移行为不符合你的喜好,你可以去鼠标行为选项卡并选择您最喜欢的缩放模式

  5. 关闭程序。现在按Ctrl+ Super+ Equal。你应该看到你的桌面被放大了。

答案4


我找到的最佳解决方案

如前所述,您很难让这个功能正常工作 - 尤其是在多台显示器的情况下(我的问题)。我决定使用一行命令来实现一致的多显示器演示,我的板载显示器是 hidpi,如下所示:

./xrandr --output eDP-1 --mode "2880x1800" --scale "0.5x0.5"

该命令的意思是:将我的原始分辨率缩小 50%,当我们谈论像素时,这意味着渲染根本不需要进行太多解释,并且结果应该是清晰的。

为什么有效:因为,一个“正方形”像素现在由 4 个正方形像素表示。

笔记:您的选择可能会有些不同。

一些细节:不得不从 nvidia 切换回 nouveau


首先-看看你的默认系统 xrandr 缩放是否没有模糊

  • 安装 x11-server-utils

    sudo apt install x11-xserver-utils
    
  • 找到“已连接”的 hidpi 显示器,它将在“已连接”前面有一个标识名称:

    xrandr -q
    
  • 示例输出,您的显示器名称位于‘已连接’前面:

xrandr -q 输出

  • 我的显示器是“eDP-1”,原始分辨率(顶部)是 2880x1800。因此,我们将顶部的分辨率缩小 50% 以避免模糊,确保使用 xrandr -q 中的值作为 eDP-1 和 2880x1800

    xrandr --output eDP-1 --mode "2880x1800" --scale "0.5x0.5"
    

如果您这样做了并且仍然拥有清晰的字体等,那么您就设置好了,跳到下面的“总结”。

如果模糊的话,那么以下步骤将会有所帮助。


步骤 1 - 系统 xrandr 仍然模糊...系统准备

sudo apt install git build-essential autoconf xutils-dev automake dkms gksu libxrandr-dev mesa-utils x11-xserver-utils

根据您的系统可能会有些不同,但这对我来说有效。


第 2 步 - 获取 xrandr 源代码

克隆 xrandr 代码

git clone https://anongit.freedesktop.org/git/xorg/app/xrandr.git xrandr_source && cd xrandr_source

步骤 3 - 记下你的 xrandr 版本

请记下你的 xrandr 版本,你将需要这个:

xrandr --version | grep 'program version' | awk '{print $4}'

步骤 4 - 签出与你的系统相同的版本号 git 标签

从 xrandr_source 目录中检查 xrandr 的 git 标签

git tag --list | grep 'xrandr'

找到你的版本号并“签出”该标签

git checkout tag/xrandr-[your version number here]

对我来说这是:

git checkout tax/xrandr-1.5.0

步骤 5 - 修改 xrandr.c

使用您想要使用的任何文件编辑器打开 xrandr.c。搜索“transform.filter”。大约有三个地方。您会注意到它在一个条件语句中,如下所示:

    if (sx != 1 || sy != 1)
        output->transform.filter = "bilinear";
    else
        output->transform.filter = "nearest";

'双线性'会使它变得模糊 - 但是 - 因为我们正在“方形”缩小,也就是说,一个像素现在是四个,所以我们不需要双线性并且可以使用“最近”。

您有两个选择,增强 if 条件,或者完全删除所有 if 并保留:

output->transform.filter = "nearest";

因为我们不打算“安装”这个 xrandr,所以不妨按照我的方法操作。你会发现几个地方:

output->transform.filter = "bilinear";

最简单的方法就是将“双线性”改为“最近”

保存文件。关闭编辑器


第 6 步 - 编译

./autogen.sh && make

您现在应该在该目录中有一个新建的 xrandr,尝试

./xrandr -q

它应该给你输出。

现在你可以尝试原始的 xrandr 命令:

./xrandr --output [your display] --mode "[your native resolution]" --scale "0.5x0.5"

第 7 步 - 总结

你现在还可以操作与字体、dpi、抗锯齿等相关的所有常规设置

我不需要 hidpi 提供的所有额外空间,另外你最终只需放大所有内容即可使用。

信用:我从这里得到了大部分资料,但是,这已经有好几年了,我认为它属于最近的一个问题:https://forums.linuxmint.com/viewtopic.php?t=159064

相关内容