如何设置默认的 xrandr 设置?

jbe*_*rd4 17 xrandr multiple-monitors compiz

我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)

当我这样做时,桌面效果仍然被禁用,我需要手动重新启用它们。这一点,尽管硬件加速有效,但绝不会因为虚拟显示器的水平尺寸太大而导致硬件加速停止工作。那么什么程序试图变得聪明,并且在不需要时关闭桌面效果?我该如何让它停止?

如果有一种方法可以从命令行重新启用桌面效果,然后我可以将其与正确的 xrandr 调用一起放入脚本中,我会接受它作为一种解决方法。

更新 3:

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

第二显示器.sh

xrandr --output VGA1 --above LVDS1
sleep 3
compiz --replace &
Run Code Online (Sandbox Code Playgroud)

sleep 语句可能不是必需的。

如果有更好的方法来做到这一点,请告诉我。

更新 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>
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

小智 1

或者您可以直接获取 compiz fusion 图标,它可以让您轻松单击重新加载 compiz 的方式。非常感谢,遇到了同样的问题,从来没有想过重新加载 compiz,只是认为我将不得不在双模式下忍受它。刚刚尝试了融合图标,瞧!立方体,一切又恢复正常了。


kri*_*iss 0

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

您可以将命令与;(第二个命令期望第一个命令完成)链接起来,而不是睡觉,以获得想要的效果。

xrandr --output VGA1 --above LVDS1 ; compiz --replace &
Run Code Online (Sandbox Code Playgroud)