我四处寻找,却找不到这个问题......
因此,我在 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
答案1
尝试了几种方法后,我终于搞清楚了问题所在。我必须将两台显示器插入同一种类型的端口,同一块显卡上。我在家里费了好大劲才找到电缆,但拿到一对 HDMI 电缆后,我就能毫不费力地正确设置显示器了。
现在回想起来,这似乎很明显,但我没有想到这一点,尤其是因为我在同一台机器上安装的 Windows 似乎可以很好地处理原始设置(两种类型的端口,两个不同的设备)。但这完全说得通。
答案2
我遇到了同样的错误。你的技巧只是一个触发器,使错误不会发生。由于你的解决方法对我不起作用,我深入研究了一下,找到了一个好人有解决方案这也许也会对其他人有所帮助。
主要问题是我们在这里遇到的错误导致正在滚动到另一个的显示器有一个虚拟屏幕两个屏幕的尺寸相加。因此,解决方案似乎是禁用该屏幕上的额外虚拟空间以适应显示器的分辨率。这通常通过参数来完成--panning AxB
- 我们使用它来设置虚拟空间大小。
你可以这样做:
xrandr \
--output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
--output HDMI-0 --mode 1920x1080 --panning 1920x1080 --pos 0x0 --primary
(\
在命令中添加斜线以使用换行符。)
不幸的是,这里的问题是司机(这就是错误所在)似乎会覆盖我们设置的(或未设置的)平移。但它不会设置平移的另一部分:跟踪区域!跟踪区域实际上是摄像机跟随显示器上的光标的屏幕部分。
因此,我们的想法是将平移设置为驱动程序,但限制跟踪区域。
这是通过以下命令完成的:
xrandr \
--output LVDS-1-0 --mode 1920x1080 \
--output HDMI-0 --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0 --primary
“前四个参数[论点panning
]指定总平移区域,接下来的四个参数指定指针跟踪区域(默认为同一区域)。最后四个参数指定边框,默认为 0。”[男人xrandr]