如何设置默认的xrandr设置?


17

我正在尝试在Ubuntu中启用双监视器。这工作正常,但每次执行此操作时,都会禁用桌面效果。我想我已经找到了原因,但是:

https://wiki.ubuntu.com/X/Config/Multihead/

与GNOME XRandR配置方法一样,将Virtual设置为太大的值可能会导致硬件加速损失,从而导致无法使用Compiz及其桌面效果。

当我使用GNOME监视器小程序或“系统”菜单中的“监视器”配置时,默认的xrandr设置将第二个监视器置于第一个监视器的右侧,并且,正如我在此错误中发现的那样,对于大多数监视器,这将创建一个更大的虚拟桌面比我的上网本硬件上的硬件加速所需的最大2048水平分辨率高。

因此,好像我可以修改xrandr的默认设置,以便将新桌面放置在LVDS主显示屏的上方或下方(北或南),然后进行硬件加速,因此compiz将继续工作。谁能告诉我,最简单的方法是什么?

更新:

我已经确认,当我将外部监视器显示器移至LVDS主显示器的北部时,具有桌面效果和硬件加速功能的多头支持将起作用。现在,这涉及以下过程:插入外部监视器,启动“监视器”配置菜单,自动禁用桌面效果(工作区中的所有窗口都移至第一个工作区),重新定位外部显示器,以便在LVDS显示的北部,单击“应用”,然后导航到“外观”菜单,并告诉它重新启用桌面效果。有没有更简单的方法?

更新2:

好的,所以我认为GNOME Monitors的配置屏幕可能试图变得更聪明,并且可能正在禁用桌面效果。因此,我只是尝试使用xrandr命令行客户端,如下所示:

xrandr --output VGA1 --above LVDS1

当我这样做时,桌面效果仍然被禁用,我需要手动重新启用它们。尽管有硬件加速起作用的事实,但由于虚拟显示器的水平尺寸太大,硬件加速永远不会停止起作用。那么,什么程序试图变得聪明,并在不需要时关闭桌面效果?以及如何使其停止?

如果有一种方法可以从命令行重新启用桌面效果,然后可以将其与适当的xrandr调用一起放入脚本中,则可以接受这种解决方法。

更新3:

好的,这是我的脚本,用于启用第二个具有桌面效果的监视器。这可能是邪恶的,我不确定:

第二个监视器

xrandr --output VGA1 --above LVDS1
sleep 3
compiz --replace &

睡眠声明可能不是必需的。

如果有更好的方法可以进行此操作,请告诉我。

更新4:

这是Dell Mini 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

这是否涉及Nvidia卡?
Windigo

绝对不。我已经用相关规范更新了信息。
jbeard4 2011年

遇到这种情况时,您能否发布错误的输出?这将有助于隔离问题。谢谢。

Answers:


3

从左到右放置它们不是xrandr的默认值,而是gnome-settings-daemon的默认值。从gnome-settings-daemon 2.32开始,应该仅从monitors.xml加载最后一个配置;因此,如果您一次完成了垂直布局,那么下次它会自动将其选中而不用踢出Compiz。

那么,您是否有机会运行10.04 Lucid?在这种情况下,您可以按照以下说明在gnome-settings-daemon 2.30.1中启用此功能。

1)打开一个终端

2)获取源码:

mkdir src
cd src
apt-get source gnome-settings-daemon

3)在1349行中编辑src / gnome-settings-daemon-2.30.1 / plugins / xrandr / gsd-xrandr-manager.c

#if 1

#if 0

4)在终端中,安装构建依赖项:

sudo apt-get install build-dep gnome-settings-daemon

5)给您的软件包一个新的版本号:

dch -i "enable monitor.xml default values"

6)构建并安装您的软件包:

debuild
cd ..
sudo dpkg -i gnome-settings-daemon*.deb

请让我知道这是否适合您,我从记忆中复制了步骤。另外,让我知道您是否需要执行其他步骤,以便我可以更新此答案。


1

或者,您也可以仅获得compiz融合图标,它使您可以轻松地单击重新加载compiz的方式。非常感谢,遇到了同样的问题,从来没有想过重新加载compiz,只是以为我将不得不在双模式下使用它。刚刚尝试了融合图标,瞧!多维数据集,一切恢复正常。


甜!我在askubuntu.com上看到过帖子,与此相关的问题很多。感谢您指出了这一点!
法伦2014年

0

难道“智能”程序只是compiz崩溃而又退回到了后备窗口管理器吗?您的compiz命令在修复有问题的设置后重新启动3D窗口管理器。

不用睡觉,您可以将命令与之链接;(第二个命令期望第一个完成),以获得所需的效果。

xrandr --output VGA1 --above LVDS1 ; compiz --replace &
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.