如何配置两个具有不同 DPI 和尺寸的显示器,以使文本大小相同?

我正在使用18.04 LTS版本,配备了两个显示器:一个24英寸的1920x1200分辨率和一个27英寸的3840x2160分辨率。
高分辨率显示器上的文字太小了,无法阅读。
我尝试使用“屏幕显示”设置界面将缩放比例调整为200%,但这只会使所有内容变得巨大而模糊。我不知道为什么他们只提供100%的倍数作为可选项,但这种UI缩放并不是我想要的。我希望在高分辨率显示器上使用原生分辨率,只是字体相对较大一些,以便能够阅读。其他界面元素的大小应保持不变。
上述缩放选项会同时缩放两个显示器,即使每个显示器都显示了单独的控件。更改一个显示器的设置会自动更改另一个显示器的设置。看起来像是一个错误。有一些关于使用xrandr进行自定义缩放的帖子和答案,但那样会缩放整个界面,这不是我想要的。
在Ubuntu中是否可以像Windows 10那样获得针对每个显示器的字体缩放选项?
我也希望在屏幕之间能够像Windows上的https://github.com/mgth/LittleBigMouse所启用的那样,实现dpi感知的鼠标移动。

您可以在 https://askubuntu.com/questions/1191898/monitor-vs-notebook-display/1192082 找到有关监视器缩放的有用信息,但是关于跨显示器 DPI 感知鼠标移动,我无法确定。历史上的解决方案是在选择时选择匹配其分辨率和 DPI 的显示器。 - K7AAY
1谢谢 @K7AAY。在我回答之前,我没有注意到你的评论,但看起来我们都在同一个方向上。通过缩放,较小的显示屏试图展示一种它硬件不支持的分辨率,所以会显得有些锯齿状,但似乎这是目前最好的选择。自动缩放解决了鼠标移动的问题,这真是个令人愉快的惊喜。 - Ashley Wilson
1个回答

我最接近这个的方法还是使用xrandr(显示缩放)。这是我运行的命令:
xrandr --output "DisplayPort-0" --auto --pos 3456x0 --scale 1x1  --output "DisplayPort-1" --auto --scale 1.8x1.8 --pos 0x0

以下是一个更易读的版本:
xrandr 
    --output "DisplayPort-0"
        --auto 
        --pos 3456x0 
        --scale 1x1
    --output "DisplayPort-1" 
        --auto 
        --scale 1.8x1.8 
        --pos 0x0

我的两个显示器都插在DisplayPorts上,27英寸3840x2160的显示器是DisplayPort-0,24英寸1920x1200的显示器是DisplayPort-1。
我通过使用1.8倍的缩放因子,将较小的显示器的高度调整为与较大的显示器相同。
2160 / 1200 = 1.8。
这意味着鼠标可以在两个显示器之间无缝移动,而不会被任何边缘卡住。全屏缩放的使用意味着文本看起来像是关闭了字体平滑(尽管仍然可读),所以我真的希望有人能想出一种按显示器进行字体缩放的方法,但在那之前,这样就足够了。
我唯一需要做的其他计算是找到较大显示器的偏移量,以便将其移到较小显示器的右侧。缩放后,较小的显示器的分辨率是其原始分辨率1920的1.8倍,即(1920 x 1.8 =)3456。
编辑:忘记提到,我还使用了大号文本的辅助功能设置,这样较大显示器上的文本就不需要眯眼才能看清。但如果没有上述的缩放,这会使较小显示器上的文本过大。

如何使这个变得永久? - Klaas van Gend
1升级到Ubuntu 20.04 LTS可以提供每个显示器的缩放选项,从而避免这个问题。但如果不可能进行升级,您将需要在分辨率因其他原因发生变化时运行该命令。您需要确保两个显示器都处于开启状态并以相同的方式连接,以便自动分配的名称不会不同。在我的设置中,即使屏幕被锁定,分辨率也会发生变化,所以我将上述xrandr命令设置为在解锁屏幕时运行。请参考https://unix.stackexchange.com/questions/28181/how-to-run-a-script-on-screen-lock-unlock - Ashley Wilson