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

我正在使用两个屏幕:


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

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

阅读Galgalesh的答案,我试图计算DPI,这是我应该具有的DPI配置:


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

是否可以通过扩展的台式机获得双DPI分辨率?

评论

好吧,以非本机分辨率驱动任何LCD屏幕都会显得模糊。这是因为像素以固定方式进行布局,并且信号与此不匹配。您究竟期望发生什么?也许禁用缩放?但是,它仅显示在屏幕中间而不是全屏显示。为了获得最佳显示效果,请始终以本机屏幕分辨率显示它。我认为这与Ubuntu没有关系。

@gertvdijk:那么,您有没有办法使两个显示器都保持其原始屏幕分辨率?我想这就是安东尼的要求。

@beldaz我的答复是问题的修订版1。它当时没有提到与双屏设置有关的任何内容。由于问题发生了重大变化,因此对于该日期之后发生的任何更改,都会引起关注。从根本上讲,它会使所做出的任何贡献无效,并且确实降低了我寻求帮助的动力。我认为用户应该问一个新问题。

@gertvdijk对不起,现在说得通。

我想知道是否可以在最新的Ubuntu中使用Wayland来解决这个问题。

#1 楼

似乎人们仍在努力使用多个监视器和HiDPI显示器。所以,我有:

笔记本电脑华硕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


评论


请求失败的错误:BadValue(整数参数超出操作范围):-(

– Juh_
2015年1月19日在13:17



--fb选项似乎未启用2x2屏幕的四分之一以上(鼠标光标不能移到左上象限上方)

– EoghanM
2015年9月8日于17:33

缩放有效,但是您不放松HiDPI吗?一切都显得缩放和模糊。

–安迪
15年9月22日在8:15

对于在我的3200x1800 hiDPI笔记本电脑左侧安装1920x1080外部显示器的并排设置:xrandr --output eDP1 --scale 1x1 --pos 3840x0; xrandr-输出HDMI1-比例2x2-模式1920x1080 --fb 7680x2160 --pos 0x0

–丹尼尔·鲍尔(Daniel Bower)
2015年11月13日在16:23



--fb参数是2 *外部显示器+笔记本电脑屏幕

– Brian C.
17年3月16日在15:17

#2 楼

为什么会变得模糊?

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

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

如何放大文本?

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

1。更改Ubuntu的字体大小

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

2。更改DPI(将使整个界面变大,不仅仅是文本)

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

评论


就像增加字体大小的注释一样。而是增加DPI,以便整个用户界面扩展。应该自动正确识别这点(从您的显示中读取EDID),但是如果失败,该怎么办:如何查找和更改屏幕DPI?

– Gertvdijk
2013年12月24日18:40



实际上,这不是我的问题的答案。我正在使用两个不同分辨率的屏幕。我进行了计算:我的左主LCD屏幕应该具有94x94 DPI分辨率,而我的右笔记本电脑屏幕应该具有235x235 DPI ...而且我没有找到任何方法来设置两个不同的DPI分辨率,除非将nvidia配置为运行2分隔X,然后我不能从左到右传递一个窗口... Windows更好地解决了这个问题:(

– Anthony O.
2014年1月6日,9:02

-1完全忽略了问题的要点

– Martin Konecny
2014年9月3日,0:19

@AnthonyO。发布您不喜欢的答案后,请不要对您的问题进行太大更改。在发布此答案时,您没有提到与双屏设置有关的任何内容(请参阅修订版1)。更改问题会使所有已发布的内容失效,并且您不应该这样做。相反,请还原问题编辑并发布新问题。

– Gertvdijk
2014年10月7日在22:18



@MartinKonecny原始提问者对他的问题进行了实质性编辑,此答案确实回答了他的原始问题,请检查其修订。

–杰米·基特森(Jamie Kitson)
15年3月26日在22:09

#3 楼

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

我正在为以下目的拍摄:
-本机DIP中的DP1-2 3840x2160。
- eDP1 1366x768,缩放到DP1-2的右边看起来很合理。 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,然后让客户端使用它而无需重新启动它们。

评论


平移是难题的最后一部分-它解决了卡在屏幕问题四分之一处的光标。谢谢@布莱恩!

–rtindru
17年4月26日在11:50

“运行两次” ????神圣像素,它可以正常工作(我已经在应用平移,但是只有在我两次运行相同命令时才能正确应用)。

–里卡多·加里(Riccardo Galli)
17年5月2日在17:44

是的,我注意到它每隔一遍就运行一次,因此我想我会尝试两次,好了,就在这里。

– Brian C.
17年5月3日,19:10

好的,因此这不适用于内核4.5.2。我只安装了该内核以处理4.5.1中与docker相关的问题,现在上述脚本使我黑屏了。要在4.5.2上解决此问题,我首先执行eDP1命令而不使用--off,然后执行DP1-2命令。

– Brian C.
17年5月10日在19:48

终于可以平移了!我仍然有一个小故障的鼠标和屏幕(因为我已经开始使用xrandr)。任何想法?

– hsandt
18年7月25日在11:41

#4 楼

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

sudo apt-get upgrade 


删除了我的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


评论


这很有趣,而且似乎肯定对某人有用,尽管我不确定这是否可以作为对这个问题的答案。也许您应该打开然后回答自己的问题?不太确定。

–希珍
18年5月15日在16:14

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

– BrainCore
18年5月16日在19:59

是的,很抱歉,我希望它是对@artem答案的答复,但是Stackexchange非常棒,在得到50布朗尼点之前,我不会让我在那里答复。

–ONECore
18年5月17日在17:58

还要注意,这似乎并不是持久的,因此,除非将其添加到xorg.conf中,否则每次重新启动时它都会消失。但是,如果您在此处添加它,无论如何都将强制执行该设置(有时我不会插入显示器)。因此,我发现仅创建一个shell并在需要时执行它非常容易。只需将上面的代码添加到以.sh结尾的文本文件中(例如resolution.sh),然后在终端中使用“ chmod 0700 resolution.sh”使其可执行即可。

–ONECore
18年5月17日在18:03

非常感谢您分享您的经验@BrainCore!

–希珍
18年5月21日在17:37

#5 楼

我能够使用以下github讨论中概述的细节解决此问题(存在问题):https://github.com/linuxmint/Cinnamon/issues/3606

外部监视器QHD(2560X1440),内置/便携式监视器3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680




外部监视器FHD(1920x1080),内置/便携式监视器3200x1800


xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960


这些工作,但是当我移动窗口,调整屏幕大小或在浏览器中滚动时,高分辨率监视器(笔记本电脑)中的撕裂痕迹很大。感觉就像一个软件租赁解决方案(具有所有这些撕裂和缓慢刷新的问题)。

到了2017年,Linux / Gnome需要解决多显示器,混合扩展解决方案。 Windows 10和OS X都解决了这一问题,而不必求助于部分起作用的命令行创可贴修复(游戏中不可接受的撕裂问题)

评论


这是一个新答案还是您要报告错误?

–user68186
17年7月20日在19:16

它是对现有答案的详细说明,可以利用更多选项。上面@artem提供的答案说明了这些设置的工作方式。我只是尝试提供2个选项,供拥有QHD或FHD外部显示器以及4K主显示器/笔记本电脑显示器的人们使用。该解决方案中的错误之处在于您所看到的。这是这种方法所固有的。

–牛仔
17年7月21日在21:35

随着4k的发展和多分辨率设置的出现,我同意最后一段需要解决的问题。以前还不错,但是现在有了4k,现在只是在一台显示器上破坏了我的设置。希望Ubuntu 18 LTS可以解决此问题。

–神经网络
17年9月11日13:16



这是2018年...仍然一样sh1t :)

– Steefanos Kalantzis
18年4月27日在12:07

Wayland为此非常出色。除此之外,这仅仅是...与wayland + kde一起也获得了很好的体验,比gnome + wayland更好。由于缺乏对仅在X上运行的某些软件的支持以及稳定性问题,我回到了X。 2018 ...

–维克多
18年6月9日在15:11

#6 楼

我遇到了类似的问题,并用这种方法解决了。

我有一个外接大屏幕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


说明:

--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


然后

gsettings set org.gnome.desktop.interface scaling-factor 2


OR

gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gdk/WindowScalingFactor': <2>}"




#7 楼

我有一台过时的1024x768显示器,已连接到(不太过时的)笔记本上。找到了缩放显示器的命令:

xrandr --output VGA-1 --scale 1.5x1.5


VGA-1是显示器的内部名称,可通过运行以下命令找到:

xrandr --current | grep connected


效果是,现在旧显示器以几乎与笔记本电脑相同的尺寸显示其内容。

奇怪的是,它可以缩放x1.5而不是1.45,显示(在我的情况下)变黑。

第一次运行比例注释时,结果令人恐惧,因为两个屏幕的内容重叠。例如,光标指针出现了两次。

我运行了一个程序:

arandr &


设置屏幕的相对位置以进行修复。
它的作用类似于“设置”>设备>显示设置。

我将其安装在:

sudo apt-get install arandr


感谢@LuisAlvarado和其他人分享您的知识!

评论


这暂时对我有用,但是如果我重新启动,它不会停留。我想我需要找到一个脚本来执行arandr在这里所做的事情,然后将整个内容放入我的bashrc或其他内容中。谢谢!

–马克斯·冯·希佩尔
19-10-4在16:34

arandr可以导出配置文件。我将文件设置在桌面中,并在每次重新启动时将其输入arandr。没有开发脚本,现在我有了监视器,不再使用arandr。

–胡安·拉努斯(Juan Lanus)
19-10-6在13:55



#8 楼

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

评论


在哪个版本的Ubuntu上?

– Anthony O.
20 May 26 '13:56

#9 楼

我花了几个小时来解决这个问题。我有一台4k笔记本电脑和1080p外接显示器。如果将缩放比例设置为“ 200%”,则外部监视器将显示放大的图标文本等。
我尝试使用“ --scale”显示xrandr命令,但它们没有给我预期的结果。因此,我有一个非常适合我的xrandr命令。我希望其他人能对您有所帮助。
xrandr --output HDMI-1-1 --mode 1920x1080 --pos 0x0 --rate 60.00 --transform 2,0,0,0,2,0,0,0,1 --output eDP-1-1 --mode 3840x2160 --pos 0x2160 --primary --rate 60.00

此命令可以作为外部监视器缩放到“ 100%”,并将内置屏幕缩放到“ 200%”。此命令将外部监视器放置在内置控件之上。请记住,您可能会更改--output名称。
请注意,2160中的--pos 0x2160与eDP-1-1的高度无关(在我的情况下,碰巧是相同的值)。该数字实际上是通过转换校正的上显示器的高度(在我的情况下为1080)(在我的情况下为1080*2)。
这是因为--pos指的是虚拟屏幕左上角的位置空间,因此底部屏幕必须相对于上部屏幕的高度定位。
最后,您可以忽略--rate标志。这里最重要的标志是--transform。位置取决于屏幕分辨率和位置。使用此命令,我将得到这样的Arandr预览;

1080p显示器实际上已调整为占用两倍的空间。得益于显示器的完美对齐,当我将鼠标从一个屏幕移动到另一个屏幕时,它会出现在相同的水平坐标上

评论


真的,谢谢。我变得绝望了。由于某种原因,我不得不将主监视器放在--pos 0x0处,并相应地放置另一个监视器。否则,情况就不对了(即使在调整了显示器的尺寸之后)。我阅读了很多帖子和解决方案,但它们会导致显示模糊或其他问题。你的工作。我开始质疑我是否需要另一台外部显示器

– prosoitos
20 Dec 10'在5:27



我的设置的缺点是鼠标根本不会以任何直观的方式在监视器之间移动。但我只是无法使其在高解析度以上的低解析度下工作。

– prosoitos
20 Dec 10'在5:42

好。我终于弄明白了。我将编辑您的帖子以使该部分更加清晰。

– prosoitos
20 Dec 10 '21:10

#10 楼

拳头运行$xrandr以显示所有输出

Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97   
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02


如您所见,在这种情况下,第二台显示器已连接到DP-3
,然后您可以转售显示器:
$xrandr --output DP-3 --auto --scale 2x2

#11 楼

我尝试了以上所有方法,但似乎一切正常。最后,我只在Fluxbox菜单中放入了两个终端条目。一种用于高分辨率显示,一种用于低分辨率显示。

[exec] (Terminal 9pt) { xterm -fa Hack:size=9 } <>
[exec] (Terminal 12pt) { xterm -fa Hack:size=12 } <>


#12 楼

我编写了一个脚本来自动执行artem的anwser中的计算:

 #!/usr/bin/env bash

# usage:
# ./script.sh 8 # to set scale 1.8

Y1=1440
X2=1680
Y2=1050

xrandr --output HDMI2 --scale 1.x1. --fb $(($X2 * 1 / 10))x$(($Y1 + $Y2 * 1 / 10)) --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 0x$(($Y2 * 1 / 10))
 


这很丑,因为bash不支持对浮点数的操作,但可以。