Mat*_*mew 7 xrandr resolution multiple-monitors
我环顾四周,在任何地方都找不到这个问题......
所以我的 Ubunutu 14.04 桌面上有两个显示器设置。我刚刚通过软件和更新工具切换到显卡的专有 NVIDIA 驱动程序解决了一个奇怪的鼠标问题,并重新启动了我的计算机。我解决了这个问题,但出现了一个新问题。
我有一个双显示器设置,都是 1920x1080 分辨率。他们似乎都在做他们应该做的事情,但是当我尝试将鼠标移动到右侧的屏幕时,我的左侧显示器随之向右滚动。我不知道如何描述它,但是当我将鼠标一直向右移动时,我最终得到了一个镜像显示!然后,当我将鼠标移回左侧时,左侧显示器向后滚动,直到它回到两个独立的显示器。
每当我启动任何程序时,窗口就会出现在中间,横跨两个屏幕。这让我相信左屏幕的分辨率设置得太高了,但是当我查看“显示”下的“系统设置”时,它们的分辨率是相同的,1920 x 1080。不太确定为什么会这样。正确的屏幕表现得非常完美。
更新:在摆弄 xrandr 设置后,我确定我想要两个 1920x1080 的屏幕,就像一个 3840x1080 的桌面一样,在任一显示器上都没有平移。我目前对如何实现这一点感到困惑(我对 xrandr 很陌生)。我一直在尝试的命令主要是以下方面的变化:
xrandr --output DVI-I-0 --size 1920x1080+1920 --panning 1920x1080 --output HDMI1 --size 1920x1080+1920 --panning 1920x1080
DVI-I-0 是我的左(也是主)显示器;HDMI1 是我的正确选择。
我不知道这是否会有所帮助,但这是以下输出xrandr:
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
DVI-I-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm panning 3840x1080+0+0
1920x1080 60.0*+ 59.9 50.0 60.1 60.0 50.0
1680x1050 60.0
1600x1200 60.0
1440x900 59.9
1280x1024 75.0 60.0
1280x720 60.0 59.9 50.0
1024x768 75.0 60.0
800x600 75.0 60.3
720x576 50.0 50.1
720x480 59.9 60.1
640x480 75.0 59.9 59.9
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected
HDMI1 connected 1920x1080+0+0 509mm x 286mm panning 1920x1080+0+0
1920x1080 60.0*+
1680x1050 59.9
1280x1024 75.0 60.0
1440x900 59.9
1280x960 60.0
1280x800 59.9
1152x864 75.0
1280x720 60.0
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
640x480 75.0 66.7 60.0
720x400 70.1
HDMI2 disconnected
HDMI3 disconnected
VIRTUAL1 disconnected
1920x1080 (0x49) 148.5MHz
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.5KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.0Hz
1280x1024 (0x2c2) 135.0MHz
h: width 1280 start 1296 end 1440 total 1688 skew 0 clock 80.0KHz
v: height 1024 start 1025 end 1028 total 1066 clock 75.0Hz
1280x1024 (0x2c3) 108.0MHz
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 64.0KHz
v: height 1024 start 1025 end 1028 total 1066 clock 60.0Hz
1024x768 (0x2c8) 65.0MHz
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.4KHz
v: height 768 start 771 end 777 total 806 clock 60.0Hz
800x600 (0x2c9) 49.5MHz
h: width 800 start 816 end 896 total 1056 skew 0 clock 46.9KHz
v: height 600 start 601 end 604 total 625 clock 75.0Hz
800x600 (0x2ca) 40.0MHz
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.9KHz
v: height 600 start 601 end 605 total 628 clock 60.3Hz
640x480 (0x2cf) 31.5MHz
h: width 640 start 656 end 720 total 840 skew 0 clock 37.5KHz
v: height 480 start 481 end 484 total 500 clock 75.0Hz
Run Code Online (Sandbox Code Playgroud)
在尝试了一些事情之后我已经弄清楚出了什么问题。我必须将两台显示器插入同一个显卡上的同一种端口。我在家里费了一番功夫才找到电缆,但一旦我拿到了一对 HDMI 电缆,我就能够轻松地正确设置显示器。
现在回想起来,这似乎是显而易见的,但我并没有想到这一点,特别是因为我在同一台计算机上安装的 Windows 似乎可以很好地处理原始设置(两种类型的端口,两种不同的设备)。但这是完全有道理的。
我遇到了同样的错误。你的技巧只是一个触发器,使错误不会陷入困境。由于你的解决方法对我不起作用,我深入研究了一下,找到了一个好人,他的解决方案也可能对其他人有帮助。
主要问题是,我们在这里遇到的错误会导致滚动到另一个屏幕的显示器出现一个虚拟屏幕,其大小与两个屏幕的大小相加。因此,该解决方案似乎会禁用该屏幕上的额外虚拟空间以适应显示器的分辨率。这通常是通过--panning AxB参数来完成的 - 我们用它来设置虚拟空间大小。
您可以这样做:
xrandr \
--output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
--output HDMI-0 --mode 1920x1080 --panning 1920x1080 --pos 0x0 --primary
Run Code Online (Sandbox Code Playgroud)
(\添加斜线以在命令中使用换行符。)
可悲的是,这里的问题是驱动程序(即错误)似乎覆盖了我们设置(或未设置)的平移。但它没有设置平移的另一部分:跟踪区域!跟踪区域实际上是摄像机跟随显示器上的光标的屏幕部分。
因此,我们的想法是将平移设置为驱动程序,但限制跟踪区域。
这是通过以下命令完成的:
xrandr \
--output LVDS-1-0 --mode 1920x1080 \
--output HDMI-0 --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0 --primary
Run Code Online (Sandbox Code Playgroud)
“ [panning参数]的前四个参数指定总平移区域,接下来的四个参数指定指针跟踪区域(默认为同一区域)。最后四个参数指定边框,默认为 0。” [男人 xrandr ]