我在 Ubuntu 12.04.3 上为我的 Quadro K2100M 显卡安装了 NVidia 驱动程序 (319),当我将笔记本电脑的主屏幕从 3200x1800 切换到 1920x1080 模式(使用nvidia-settings
)时,显示变得模糊...
我正在使用两个屏幕:
- 我的主屏幕是 LCD,最大分辨率为 1920x1200。
- 我的笔记本电脑屏幕(原始分辨率为 3200x1800)位于其右侧。
主要问题是,在 Ubuntu 上,我的笔记本电脑屏幕上的字体太小了。因此,我想将笔记本电脑的分辨率更改为 1920x1080。
阅读Galgalesh 的回答, 我尝试过了计算我的 DPI这是我应该拥有的 DPI 配置:
- 94x94 为我的主 LCD 屏幕 1920x1200
- 235x236,适用于我的 3200x1800 笔记本电脑屏幕
有没有办法让扩展桌面实现双 DPI 分辨率?
答案1
似乎人们仍然在努力尝试使用多台显示器和 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
因此,逐一进行:
--output HDMI1
就我而言是外接屏幕,eDP1
是笔记本电脑的屏幕。--scale 2x2
- 将外部屏幕上的所有内容缩小至原来的一半--mode XxY
- 明确设置屏幕分辨率(如果已经设置则不需要)--fb XxY
- 设置虚拟屏幕(帧缓冲区)的大小(重要的如果没有这个,您将只能使用屏幕的四分之一)。在我的例子中,一个屏幕位于另一个屏幕之上,因此我将有效高度加起来为 2400+1800=4200。还请注意,最大帧缓冲区大小可能在 xorg.conf 中指定 - 那么您不能超过它(它写在xrandr -q
输出的第一行)。--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
答案2
在 Ubuntu 20.04 上,对我来说,单击Fractional Scaling
显示设置底部的选项解决了所有问题。这将允许单独缩放每个显示器。
答案3
我使用了 artmem 的解决方案,但遇到了 EoghanM 提到的鼠标问题。我在他链接的旧错误报告中找到的解决方法与 --panning 有关。
我的目标拍摄为: - 原生 DIP 中的 DP1-2 3840x2160。 - 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
我还将 Xft.dpi 设置为 185
$ cat ~/.Xresources
Xft.dpi: 185
当我拔下外接显示器时,我运行:
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
这看起来不太好,但我不常离开办公桌。您可以通过更改 Xft.dpi 并重新启动所有桌面程序来解决这个问题。我不知道如何更改 Xft.dpi 然后让客户端使用它而无需重新启动它们。
答案4
为何模糊?
您的屏幕始终显示 3200x1800 像素。如果您降低计算机的屏幕分辨率,则意味着您的屏幕必须缩放图像以适合您的屏幕。根据您的原始分辨率和当前分辨率之间的比率,缩放将产生模糊的图像。
您可以在此处找到有关缩放和原始分辨率的更多信息:https://en.wikipedia.org/wiki/Native_resolution
我怎样才能使文本变得更大?
如果文本太小,您有两个选择:
1. 更改 Ubuntu 的字体大小
2. 更改 DPI(将使整个界面变大,而不仅仅是文本)
如何查找和更改屏幕 DPI?(@whtyger 的回答)