今天更新到 12.10 后,Quantal 似乎不支持我的 xorg.conf。不确定这是“错误”还是由于操作系统的变化而必须进行的调整。
登录时,Ubuntu 似乎现在只识别一个名为“Matrox”的 3840x1080 屏幕,最大化窗口会跨越两个屏幕。在 12.04 中,此配置文件成功允许我覆盖 TripleHead2Go 提供的数据并将窗口最大化到单个显示器。
有什么想法或从哪里开始尝试调试这个问题?
经过一番搜索后,我尝试根据此处的更新进行更改:http://www.phoronix.com/scan.php?page=news_item&px=MTEyMDk
这是配置文件的当前位置:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Matrox"
HorizSync 31.5 - 80.0
VertRefresh 59.9 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 260M"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "nvidiaXineramaInfo" "true"
Option "nvidiaXineramaInfoOrder" "CRT-0"
#Option "metamodes" "CRT: nvidia-auto-select +0+0"
Option "nvidiaXineramaInfoOverride" "1920x1080 +0+0, 1920x1080 +1920+0"
Option "Stereo" "0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
答案1
在 NVIDIA Linux 图形驱动程序的最新版本中(包括 nvidia-current 的 quantal 12.10、304.51 版本),引入了对 RandR 1.2+ 的支持,改进了显卡与窗口管理器(GNOME、KDE 等)之间的集成,除了 之外,还通过窗口管理器工具处理显示分辨率、旋转等。但是,配置选项(现已重命名为)nvidia-settings
似乎无法正常工作。TwinViewXineramaInfoOverride
xorg.conf
nvidiaXineramaInfoOverride
要跟踪 NVIDIA 在此主题上的进展,请参阅:
http://www.nvnews.net/vbulletin/showthread.php?p=2578805
http://www.nvnews.net/vbulletin/showthread.php?t=184814
一个可能的解决方案是使用假 Xineramahttp://home.kde.org/~seli/fakexinerama/事实证明,它也可以与 Xorg 7.7(Quantal 12.10 上的 Xorg 版本)配合使用。要按照链接文档中描述的步骤操作,您需要:
- 在手术之前,
sudo apt-get install libxinerama-dev
- 完成此操作后,重新启动系统
您可以将以下内容用于~/.fakexinerama
:
2
0 0 1920 1080
1920 0 1920 1080
为了仅在 Matrox DualHead2Go 存在时启用 fakexinerama,您还可以将此代码添加到 /etc/init/lightdm.conf 之前exec lightdm
:
if lsusb | grep -q 18ea:0003; then
echo "Matrox DualHead2Go Detected"
cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
else
echo "Matrox DualHead2Go NOT Detected"
cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
fi
使用以下规则使此代码正常工作:
- 无论如何,
/usr/lib/i386-linux-gnu
如果/usr/lib/x86_64-linux-gnu
不是 64 位,请使用 - 将原件备份
/usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
至/usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig
- 将 fakexinerama build 修改后的版本复制到
/usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake
18ea:0003
如果不同,请用您的设备产品 ID替换(用于lsusb
查找正确的值)。
每次需要从 Matrox DualHead2Go 模式切换到原始模式时,都需要重新启动系统。
注意:一旦工作,您应该能够将窗口最大化到每个单独的屏幕,但是任何使用 RandR 信息而不是 Xinerama 的操作都不会处理假的 Xinerama 信息(例如壁纸、Adobe Flash 全屏 - 包括 YouTube 等)。
答案2
好的,部分修复:
- 如果您还没有安装 compizconfig-settings-manager 包,请安装它。
- 运行它并转到常规选项>显示设置
- 根据需要添加输出(在我的情况下,有两个 DVI 连接,分别为 1920x1080+0+0 和 1920x1080+1920+0)
- 取消选中输出列表上方的“检测输出”选项
警告:
- 这不会解决面板跨越多个桌面的问题,只能解决最大化窗口跨越两个屏幕的问题
我已经完全忘记了 compizconfig 有这个功能。
关于使用此功能分割每个输出的面板,有任何输入吗?