如何在 VirtualBox 中调试 Ubuntu 14.04 中的“卡住工作区”问题?

如何在 VirtualBox 中调试 Ubuntu 14.04 中的“卡住工作区”问题?

我在 VirtualBox 中使用 Ubuntu 14.04(之前是 4.x,现在是 5.0.x),工作区出现了一个小问题,我想尝试将其追溯到 Ubuntu 和 VirtualBox,以便报告故障。如果有经历过同样情况的人提供设置/修复方法,那就太好了。

当我启动虚拟机时,它会自动设置为全屏。在虚拟机中,我可以在不同的工作区(我倾向于使用 3x3)上排列应用程序(例如 Firefox)的窗口。如果我关闭全屏(通常使用 Host-F)然后重新打开,该应用程序的所有窗口将聚集在一个工作区上,并且在工作区视图中拖动时,它们拒绝停留在新位置。换句话说,它们可以很好地拖动,但放下它们会导致它们“反弹回”当前工作区。

我想知道这是否是 Unity 的问题,如果是,我可能会将客户机发行版切换到带有 Cinnamon 的 Mint。但是,如果这是 Guest Additions 的问题,则需要向 Oracle 报告,以便 VB 开发人员可以查看它。

我尝试过 Mint/KDE 和 Mint/Cinnamon,并在桌面客户机的 2x2 工作区中分别添加了不同的应用程序。我切换了两次全屏模式:一次关闭,一次打开,所有窗口仍然位于正确的工作区中。这让我确信 VirtualBox 不是罪魁祸首,Ubuntu/Unity 似乎才是罪魁祸首。

我还尝试安装全新的 14.04.2 来执行完全相同的测试,但也无法立即在此处复制该问题。我估计有问题的客户机已经进入了它本不应该进入的状态。

答案1

我没有成功修复这个问题(考虑到我的虚拟机需要重建,我可能会切换到 Mint),但我发现切换窗口的最大化状态会“取消”它们。也许这是在虚拟机中使用 Unity 导致的一个罕见错误。

我已经编写了一个脚本来切换所有窗口,因此解决这个问题现在变得容易得多:

#!/bin/bash
#
# Resets all Windows after triggering Ubuntu/VirtualBox windowing bug
#
# @todo Filter out windows we don't need, using grep

for window in `wmctrl -l | cut -d " " -f 1`; do
    # Debugging
    #echo $window

    # Looks like doing just one axis doesn't work
    wmctrl -i -r $window -b toggle,maximized_vert,maximized_horz
    wmctrl -i -r $window -b toggle,maximized_vert,maximized_horz

    # Activate them as well
    wmctrl -R $window
done

关于如何调查此事的进一步回答非常受欢迎,但与此同时,我已经记录了一个错误与 Unity 开发人员合作。

相关内容