问题描述
我为我的Quadro K2100M显卡使用了Ubuntu 12.04.3和NVidia驱动程序(319),当我将主3200×1800笔记本电脑屏幕切换到1920×1080模式(使用nvidia-settings
)时,显示屏变得模糊不清…
我使用两个屏幕:
-
我的主屏幕是最高分辨率为1920×1200的LCD。
-
我的笔记本电脑屏幕(原始分辨率3200×1800)坐在右侧。
主要的问题是,在Ubuntu上,我的笔记本电脑屏幕上的字体太小了。因此,我想将我的笔记本电脑的分辨率更改为1920×1080。
读Galgalesh answer我尝试了compute my DPI,这里是我应该有的DPI配置:
-
94×94为我的主要LCD屏幕1920×1200
-
我的3200×1800笔记本电脑屏幕为235×236
有扩展桌面的双DPI分辨率的方法吗?
最佳解决思路
看起来人们仍在努力尝试使用多台显示器和HiDPI显示器。在wiki wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays中描述了一个很好的解决方法。所以我有:
-
笔记本电脑华硕ln303ux:3200×1800,
-
外部显示器:1920×1200
现在我使用Ubuntu 14.10& GNOME Shell 3.12.2具有非常实用的HiDPI支持。所以我只是使用HippI的out-of-the-box支持 – 缩放因子是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
– 设置虚拟屏幕的大小(framebuffer)(没有这个很重要,你将只能使用屏幕的第四部分)。在我的情况下,一个屏幕在另一个屏幕上,所以我加起来有效高度2400 + 1800 = 4200。还要注意,最大帧缓冲区大小可以在xorg.conf中指定 – 然后您不能超过它(它写在xrandr -q
输出的第一行)。 -
--pos XxY
– 在我的情况下,我设置了屏幕的绝对位置,所以我的笔记本电脑屏幕直接位于外部屏幕的底部。
这就是它!一切都尽可能清晰。
仅供参考:要获取屏幕名称和可用分辨率,可以运行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
次佳解决思路
为什么模糊?
您的屏幕始终显示3200×1800像素。如果降低计算机上的屏幕分辨率,这意味着屏幕必须缩放图像以适应屏幕。根据您的原始分辨率与当前分辨率之间的比率,该缩放会产生模糊的图像。
您可以在这里找到更多关于缩放和原始分辨率的信息:https://en.wikipedia.org/wiki/Native_resolution
我怎样才能让文字更大?
如果文字很小,你有两个选择:
1.更改Ubuntu的字体大小
2.更改DPI(将使整个界面更大,而不仅仅是文本)
How to find and change the screen DPI?(由@whtyger回答)
第三种解决思路
我用artmem的解决方案,但遇到了EoghanM提到的鼠标问题。我在他链接到的旧bug报告中找到的解决方法与panning有关。
我正在拍摄: – 原生DIP中的DP1-2 3840×2160。 – eDP1 1366×768,缩放到DP1-2右侧看起来合理。
我得到这个是通过一个像DP1-2 +(2x eDP1)的帧缓冲区来实现的,然后我将所有进入eDP1的所有东西都缩放1/2。
这应该很简单,但xrandr有点棘手。
这里–scale用于减少1/2的eDP1。 – 与原始帧缓冲区中的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,然后让客户端在不重新启动的情况下使用它。
第四种思路
我能够使用以下github讨论中概述的细节来解决这个问题(带有问题):https://github.com/linuxmint/Cinnamon/issues/3606
外部显示器QHD(2560X1440),内部/笔记本电脑显示器3200×1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680
要么
外部监视器FHD(1920×1080),内部/笔记本电脑监视器3200×1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960
这些工作,但是当我移动窗口,调整屏幕大小或在浏览器上滚动时,高分辨率显示器(笔记本电脑)有很大的破坏。这感觉就像一个软件解决方案(它具有撕裂和缓慢刷新的所有这些问题)。
其2017年Linux /Gnome需要解决multi-monitor混合扩展解决方案。 Windows 10和OS X都可以解决这个问题,而不必求助于部分工作的命令行band-aid修复(撕裂问题不适用于游戏)
参考资料