是否可以为两个不同的屏幕使用不同的 DPI 配置?

Ant*_* O. 160 display dpi multiple-monitors screen display-resolution

我正在为 Quadro K2100M 显卡使用带有 NVidia 驱动程序 (319) 的 Ubuntu 12.04.3,当我将 3200x1800 笔记本电脑主屏幕切换到 1920x1080 模式(使用nvidia-settings)时,显示变得模糊...

我正在使用两个屏幕:

  • 我的主屏幕是最大分辨率为 1920x1200 的 LCD。
  • 我的笔记本电脑屏幕(原始分辨率 3200x1800)位于它的右侧。

主要问题是,在 Ubuntu 上,我的笔记本电脑屏幕上的字体太小了。因此,我想将笔记本电脑的分辨率更改为 1920x1080。

阅读Galgalesh 的回答,我尝试计算我的 DPI,这是我应该拥有的 DPI 配置:

  • 94x94 用于我的主 LCD 屏幕 1920x1200
  • 我的 3200x1800 笔记本电脑屏幕为 235x236

有没有办法在扩展桌面上获得双 DPI 分辨率?

art*_*tem 150

似乎人们仍在努力尝试使用多台显示器和 HiDPI 显示器。arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays 中描述了一个很好的解决方法。所以我有:

  • 笔记本华硕ln303ux:3200x1800,
  • 外接显示器:1920x1200

现在我使用 Ubuntu 14.10 和 GNOME Shell 3.12.2,它具有非常可用的 HiDPI 支持。所以我只使用开箱即用的 HiDPI 支持 - 缩放因子为 2(可以通过 GUI 设置)。这意味着在外部显示器上,我得到的所有东西都比可接受的大两倍。因此,我使用 xrandr;但我没有缩小笔记本电脑的屏幕,而是放大了外接显示器屏幕:

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400
Run Code Online (Sandbox Code Playgroud)

所以,一一:

  1. --output HDMI1在我的情况下是外部屏幕,eDP1是笔记本电脑屏幕。
  2. --scale 2x2 - 将外部屏幕上的所有内容缩小两倍
  3. --mode XxY - 明确设置屏幕分辨率(如果已经设置则不需要)
  4. --fb XxY- 设置虚拟屏幕(帧缓冲区)的大小(重要的是没有这个,你将只能使用屏幕的第四部分)。在我的情况下,一个屏幕在另一个屏幕上,所以我将有效高度加起来为 2400+1800=4200。另请注意,最大帧缓冲区大小可能在 xorg.conf 中指定 - 然后您不能超过它(它写在xrandr -q输出的第一行中)。
  5. --pos XxY- 就我而言,我设置了屏幕的绝对定位,因此我的笔记本电脑屏幕直接位于外部屏幕的底部。此处的值 Y 是外部显示器高度的两倍。

就是这样!一切都尽可能地清脆。

仅供参考:要获取屏幕名称和可用分辨率,可以运行xrandr --current. 有关设置分辨率的更多信息,请访问:https : //wiki.ubuntu.com/X/Config/Resolution

更新 - 选项 2:支持 GTK3 的应用程序的另一种有趣解决方法。如果我通常只在大屏幕上使用一个应用程序(例如某些 IDE,如 leksah),我不会调整屏幕大小,而是运行缩放到原始大小的应用程序

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
Run Code Online (Sandbox Code Playgroud)

  • 对于 1920x1080 外接显示器位于我的 3200x1800 hiDPI 笔记本电脑左侧的并排设置:`xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0` (12认同)
  • 收到“请求失败错误:BadValue(整数参数超出操作范围)”:-( (8认同)
  • `--fb` 选项似乎无法启用超过四分之一的 `2x2` 屏幕(鼠标光标不能移过左上象限) (6认同)
  • 缩放有效,但你不会失去 HiDPI 吗?一切都显得缩放和模糊。 (3认同)
  • --fb 参数为 2*外接显示器 + 笔记本电脑屏幕 (3认同)
  • 这几乎有效。但现在的问题是,外接显示器上的字体实际上看起来很奇怪和模糊,我看着它头晕目眩。不确定其他人是否也遇到此问题。我想这种类型的缩放仍然不完美。现在我只是采取中间立场并将 dpi 值设置为 1.5 倍,并且根本不缩放外部显示器。这样笔记本的字体比较小,外接显示器的字体比较大,但还是可读的…… (3认同)

Mer*_*hts 9

为什么会模糊?

您的屏幕始终显示 3200x1800 像素。如果您降低计算机的屏幕分辨率,那仅意味着您的屏幕必须缩放图像以适合您的屏幕。根据您的原始分辨率和当前分辨率之间的比率,该缩放会产生模糊的图像。

您可以在此处找到有关缩放和原始分辨率的更多信息:https : //en.wikipedia.org/wiki/Native_resolution

如何让文字变大?

如果文本太小,您有两种选择:

1.更改Ubuntu的字体大小

如何更改字体并调整其大小?

2.改变DPI(会让整个界面变大,不仅仅是文字)

如何查找和更改屏幕 DPI?(@whtyger 的回答)

  • 实际上,这不是我的问题的答案。我正在使用**两个不同分辨率的不同屏幕**。我进行了计算:我的左侧主 LCD 屏幕应具有 94x94 DPI 分辨率,而我的右侧笔记本电脑屏幕应具有 235x235 DPI...而且我找不到任何方法来设置两种不同的 DPI 分辨率,除非将 nvidia 配置为运行 2分隔 X,然后我不能从左到右传递一个窗口...... Windows 处理这个问题要好得多:( (25认同)
  • -1 完全忽略问题的要点 (12认同)
  • @安东尼奥。在发布了您不喜欢的答案后,请不要大幅更改您的问题。**在发布此答案时,您没有提及与双屏设置相关的任何内容**(请参阅 [修订版 1](http://askubuntu.com/questions/393400/is-it-possible-to- have-two-different-dpi-configurations-for-two-different-screen?noredirect=1#comment514198_394817))。更改您的问题会使已经发布的任何内容失效,您不应该这样做。相反,还原问题编辑并发布新问题。 (11认同)
  • @MartinKonecny 原始提问者大幅编辑了他的问题,这个答案确实回答了他的原始问题,请检查修订。 (6认同)

Bri*_* C. 8

我使用了 artmem 的解决方案,但遇到了 EoghanM 提到的鼠标问题。我在他链接的旧错误报告中找到的解决方法与 --panning 相关。

我正在拍摄: - DP1-2 3840x2160 原生 DIP。- eDP1 1366x768,缩放到 DP1-2 右侧看起来合理。

我通过拥有一个类似于 DP1-2 + (2x eDP1) 的帧缓冲区来实现这一点,然后我将所有进入 eDP1 的内容都缩放 1/2。

这应该很简单,但 xrandr 有点棘手。

这里 --scale 用于将进入 eDP1 的所有内容减少 1/2。--panning 与原始帧缓冲区中的 eDP1 相同,位置 (+3840+0) 位于 DP1-2 的右侧。+0+2160 将低于它。

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
Run Code Online (Sandbox Code Playgroud)

我还将 Xft.dpi 设置为 185

$ cat ~/.Xresources
Xft.dpi: 185
Run Code Online (Sandbox Code Playgroud)

当我从外部显示器上拔下时,我运行:

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary
Run Code Online (Sandbox Code Playgroud)

这看起来不太好,但我离办公桌不远。您可以通过更改 Xft.dpi 并重新启动所有桌面程序来解决此问题。我不知道有什么方法可以更改 Xft.dpi,然后让客户端在不重新启动的情况下使用它。

  • “运行两次”????神圣像素,它可以工作(我已经在应用平移,但只有在我两次运行相同的命令时才能正确应用)。 (3认同)
  • 平移是这个难题的最后一块——它解决了光标卡在屏幕四分之一处的问题。谢谢@布莱恩! (2认同)

小智 7

这些答案都很棒,以前对我有帮助,但是最近

sudo apt-get upgrade 
Run Code Online (Sandbox Code Playgroud)

删除了我的 randr-config!在尝试恢复我的设置时,我发现无论 --fb 输入如何,我都无法再让鼠标超出第二个屏幕的顶部 1/4 象限。从https://wiki.archlinux.org/index.php/HiDPI#Side_display我最终发现添加平移可以解决问题。此外,使用“--right-of”或“--left-of”比“--pos”更简单。

“通常,如果您的 HiDPI 显示器(笔记本电脑)是 AxB 像素,而您的常规显示器(外部)是 CxD,并且您按 [ExF] 进行缩放,则右侧的命令行是:”

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
Run Code Online (Sandbox Code Playgroud)

  • @Emily:我认为这个答案属于这里。我今天使用了 artem 的答案,并且遇到了 ONECore 所述的确切问题(鼠标只能使用屏幕的左上象限)。幸运的是,我看到了这个答案,平移立即生效。 (2认同)

小智 5

我有类似的问题并以这种方式解决了。

我有一个外接大屏幕 24 英寸 3840x2160 和一台笔记本电脑,分辨率相同 3840x2160 但小屏幕 15.4 英寸

我想要缩放笔记本电脑屏幕,因为默认缩放比例太小..

使用 xrandr 缩小,因为我们通常会在模糊的屏幕中看到结果,解决方案是使用 xrandr 放大所有内容,然后使用 gnome 缩放因子:

以下是如何做到这一点(外部屏幕位于笔记本电脑屏幕顶部,但如果更改 pos 参数,您可以以不同的方式排列)

xrandr \
    --output DP-0 --primary --mode 3840x2160  --pos 0x0 --scale 2x2  --rotate normal \
    --output DP-2 --mode 3840x2160 --pos 0x4320 --scale 1x1  --rotate normal \
    --output DP-1 --off
Run Code Online (Sandbox Code Playgroud)

说明:

--output : DP-1 is the external screen, DP-2 is the laptop screen (use xrandr -q to get your devices names)
--mode : both screen have same definitions 3840x2160
--scale 2x2 for external, 1x1 for laptop, this is "relative" to the primary which is external screen here..
--pos : external screen is at position 0x0, laptop screen is bellow at pos 0x(2160*2)=0x4320 because external screen is scalled by 2
Run Code Online (Sandbox Code Playgroud)

然后

gsettings set org.gnome.desktop.interface scaling-factor 2
Run Code Online (Sandbox Code Playgroud)

或者

gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gdk/WindowScalingFactor': <2>}"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Mar*_*elB 5

在 Ubuntu 20.04 上,我点击Fractional Scaling显示设置底部的选项解决了所有问题。这将允许分别缩放每个监视器。

  • 这允许我单独设置缩放比例,但外部显示器会变为 200%,除非两者都设置为 100%。 (6认同)
  • 22.04 为我工作 (3认同)