当同时运行 Unity 2d Shell 和 GNOME Panel 时,如何让其避开 GNOME Panel?

当同时运行 Unity 2d Shell 和 GNOME Panel 时,如何让其避开 GNOME Panel?

我在 12.04 中使用 GNOME Fallback,并且运行 Unity 2D Shell(没有 UNITY 2D PANEL)和 GNOME Panel。我通过使用 GNOME Fallback 登录,然后运行 ​​来完成此操作unity-2d-shell。它目前的样子如下:

在此处输入图片描述

第二张图片是我的第二台显示器,请忽略它。

如您所见,gnome 面板位于 Unity 2d shell 的顶部。我怎样才能将 Unity 2d shell 从屏幕顶部移动 28 像素(我的 gnome 面板高度为 28 像素)?

编辑:我也在运行 Compiz,因此如果有人有需要的解决方案,我可以使用 ccsm。

答案1

我确认该行为仅针对 Compiz/Dual Display 组合出现。到目前为止,我在 VBox 中使用 Ubuntu 12.04 32 位测试过:

  • Metacity + 单一显示器(OK)
  • Metacity + 双显示器(OK)
  • Compiz + 单显示器(OK)
  • Compiz + 双显示(重叠)

对我有用的一个技巧或解决方法是,在第二个显示器上添加一个顶部面板,并且应该禁用两者的自动隐藏。

如果你不想在第二个显示器上添加面板,这是另一个未经全面测试的黑客方法,它只是有效:

  1. 获取源码:

    sudo apt-get build-dep unity-2d
    apt-get source unity-2d
    cd unity-2d-5.14.0/
    
  2. 修改屏幕顶部

    nano shell/app/shelldeclarativeview.cpp

    void
    ShellDeclarativeView::updateShellPosition()
    {
    ...
        QRect my_screenInfo = m_screenInfo->availableGeometry();
        my_screenInfo.adjust(0,28,0,0);
        const QRect availableGeometry = my_screenInfo;
        //const QRect availableGeometry = m_screenInfo->availableGeometry();
    
  3. Mod Shell 高度

    nano shell/Shell.qml

    Item {
        id: shell
    ...
        height: declarativeView.screen.availableGeometry.height - 28
    
  4. 构建:

    cmake .
    make
    
  5. 测试一下

    ./shell/app/unity-2d-shell
    

您可能希望安装它然后重命名它以避免与官方版本混淆。

    sudo make install        
    sudo mv /usr/local/bin/unity-2d-shell /usr/local/bin/unity-2d-shell-mod

相关内容