我在 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 + 双显示(重叠)
对我有用的一个技巧或解决方法是,在第二个显示器上添加一个顶部面板,并且应该禁用两者的自动隐藏。
如果你不想在第二个显示器上添加面板,这是另一个未经全面测试的黑客方法,它只是有效:
获取源码:
sudo apt-get build-dep unity-2d apt-get source unity-2d cd unity-2d-5.14.0/
修改屏幕顶部
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();
Mod Shell 高度
nano shell/Shell.qml
Item { id: shell ... height: declarativeView.screen.availableGeometry.height - 28
构建:
cmake . make
测试一下
./shell/app/unity-2d-shell
您可能希望安装它然后重命名它以避免与官方版本混淆。
sudo make install
sudo mv /usr/local/bin/unity-2d-shell /usr/local/bin/unity-2d-shell-mod