i3 和 highdpi/HD 双屏:如何正确缩放?

i3 和 highdpi/HD 双屏:如何正确缩放?

我有两台显示器:

DP-1:1920x1080(高清,辅助)

eDP-1:3840x2160(4k,主)

我的问题:

我想将我的 4k 显示器设置为 200% 缩放 @ 3840x2160,将我的高清显示器设置为 100% 缩放 @ 1920x1080

我已尝试过:

运行 i3 时,从视觉上看,默认设置是将所有内容保持在 4k @ 1x1 缩放比例。(当我检查 arandr 时,似乎高清显示器设置为 1080,但从视觉上看情况并非如此)。

在 gnome 桌面环境中,我必须使用一些技巧才能使我的两个显示器正确显示。我运行:xrandr --output eDP-1 --scale 0.999x0.999 --pos 3840x0 ; xrandr --output DP-1 --scale 1.999x1.999 --mode 1920x1080 --fb 7680x2160 --pos 0x0

在 Gnome 中,这很有效,但是当我在 i3 中运行它时,它似乎将所有内容设置为 3840x2160 @ 100% 缩放(非常非常小)。我还收到错误:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  33
  Current serial number in output stream:  34

我做了什么:

✔️我可以让高清显示器按如下方式工作: xrandr --output DP-1 --scale 1x1 --mode 1920x1080

现在,当我调整我的主 4k 显示器时,它有以下奇怪的行为:

✔️xrandr --output eDP-1 --mode 3840x2160调整到正确的分辨率

xrandr --output eDP-1 --scale 2x2让它变得非常小

✔️xrandr --output eDP-1 --scale 0.5x0.5使物体大小合适,但很模糊

xrandr --output --dpi <attempted with value 96, 192>不起作用并且失败:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  33
  Current serial number in output stream:  35

因此,我能够让两个显示器都处于正确的分辨率,但无法在我的 4K 显示器上进行清晰的 200% 缩放。出于某种原因,我不得不在 Gnome 中进行 2x2 缩放才能使内容变大,而我必须在 i3 中进行 0.5x0.5 缩放才能使内容变大,这会使内容变得模糊。编辑:哦,是的,尽管 UI 元素是成比例的,但鼠标真的很大

答案1

几个世纪以来,我终于明白了这一点。解决方案不是应用 0.5x0.5 缩放,而是调整 DPI。我认为 DPI 调整不起作用,因为您需要刷新 i3 才能看到它们(Mod+shift+r)

我添加了以下内容~/.Xresources

Xft.dpi: 192

然后我运行了以下命令:

xrdb -merge .Xresources

exec i3

然后我运行了以下脚本,借用自[本文][1]:

#!/bin/bash
xrandr --dpi 192 --fb 7680x4320 \
    --output eDP-1 --mode 3840x2160 \
    --output DP-1 --scale 2x2 --pos 3840x0 --panning 3840x2160+3840+0

此后,缩放似乎有效![1]:https://blog.summercat.com/configuring-mixed-dpi-monitors-with-xrandr.html

相关内容