我正在尝试在 Ubuntu 中启用双显示器。这工作正常,但每次我这样做时,桌面效果都会被禁用。不过,我想我已经找到了原因:
https://wiki.ubuntu.com/X/Config/Multihead/
与 GNOME XRandR 配置方法一样,将 Virtual 设置为太大的值可能会导致硬件加速丢失,从而无法使用 Compiz 及其桌面效果。
当我使用 GNOME 监视器小程序或系统菜单中的监视器配置时,默认的 xrandr 设置将第二个监视器放在第一个监视器的右侧,并且,正如我在这个错误中发现的那样,对于大多数监视器,这会创建一个更大的虚拟桌面比我的上网本硬件上硬件加速所需的最大 2048 水平分辨率。
因此,似乎我可以修改 xrandr 的默认设置,以便将新桌面放置在主 LVDS 显示器的上方或下方(北或南),然后硬件加速,因此 compiz 将继续工作。谁能告诉我,实现这一目标的最简单方法是什么?
更新:
我已经确认,当我将外接显示器显示器移到主 LVDS 显示器的北部时,具有桌面效果和硬件加速的多头支持工作正常。现在这涉及以下过程:插入外接显示器,启动显示器配置菜单,自动禁用桌面效果(我工作区上的所有窗口都移动到第一个工作区),重新定位外接显示器,使其在 LVDS 显示以北并单击应用,然后导航到外观菜单并告诉它重新启用桌面效果。有没有更简单的方法来做到这一点?
更新 2:
好的,所以我认为也许 GNOME 监视器配置屏幕试图变得聪明,并且可能会禁用桌面效果。所以,我只是尝试使用 xrandr 命令行客户端,如下所示:
xrandr --output VGA1 --above LVDS1
当我这样做时,桌面效果仍然被禁用,我需要手动重新启用它们。尽管硬件加速可以工作,但硬件加速永远不会因为虚拟显示器的水平尺寸太大而停止工作。那么什么程序试图变得聪明,并且在不需要时关闭桌面效果呢?以及如何让它停止?
如果有一种方法可以从命令行重新启用桌面效果,然后我可以将其与正确的 xrandr 调用一起放入脚本中,我会接受它作为一种解决方法。
更新 3:
好的,这是我的脚本,用于启用具有桌面效果的第二台显示器。这可能是邪恶的,我不确定:
第二个监视器.sh
xrandr --output VGA1 --above LVDS1
sleep 3
compiz --replace &
睡眠语句可能不是必需的。
如果有更好的方法可以做到这一点,请告诉我。
更新 4:
这是戴尔迷你 Inspiron 灵越 1012。
这是我的系统规格:
lspci -vv
00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller
Subsystem: Dell Device 041a
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 29
Region 0: Memory at f0b00000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at 18d0 [size=8]
Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 3: Memory at f0900000 (32-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915
00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller
Subsystem: Dell Device 041a
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at f0b80000 (32-bit, non-prefetchable) [size=512K]
Capabilities: <access denied>
lsmod | grep i915
i915 287458 2
drm_kms_helper 29329 1 i915
drm 162409 3 i915,drm_kms_helper
intel_agp 24375 2 i915
i2c_algo_bit 5028 1 i915
video 17375 1 i915
从左到右排列它们不是 xrandr 默认值,而是 gnome-settings-daemon 默认值。从 gnome-settings-daemon 2.32 开始,最后一个配置应该只从 monitor.xml 加载;因此,如果您已经完成了一次垂直布局,那么下次它会自动拾取它而不会踢出 Compiz。
那么您是否有机会运行 10.04 Lucid?在这种情况下,您可以按照这些说明在 gnome-settings-daemon 2.30.1 中启用此功能。
1)打开一个终端
2)获取来源:
3) 编辑 src/gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c,在第 1349 行,更改
至
4)在终端中,安装构建依赖项:
5)给你的包一个新的版本号:
6)构建和安装你的包:
请让我知道这是否适合您,我从记忆中复制了这些步骤。另外,如果您必须执行额外的步骤,请告诉我,以便我可以更新此答案。
或者您可以只获取compiz fusion 图标,它可以让您轻松单击以重新加载compiz。非常感谢,有同样的问题,从没想过重新加载 compiz,只是认为我将不得不在双模式下忍受它。刚刚用融合图标试了一下,瞧!立方体,一切又正常了。
“智能”程序不只是一个回退到回退窗口管理器的compiz崩溃吗?您的
compiz
命令在修复有问题的设置后重新启动 3D 窗口管理器。您可以将命令与
;
(第二个希望第一个完成)链接起来,而不是睡觉,以获得想要的效果。