保存和恢复窗口位置

Ant*_*ham 6 display window-manager multiple-monitors unity wmctrl

我遇到了一个错误,当机器从待机状态恢复时,通过显示端口 (MST) 连接的显示器没有恢复,但是如果它确实出现,窗口仍然在它覆盖的区域内。

从这种短暂的重启中恢复的唯一方法是禁用和重新启用显示,现在我可以通过命令行执行此操作,但是当禁用显示时,所有窗口都会重新排列到剩余的屏幕上。

有没有办法保留窗口位置并恢复它们,以便我的脚本可以执行此序列:-

  1. 枚举窗口,存储位置
  2. 显示关闭(打乱位置)
  3. 显示(让显示再次工作,耶!)
  4. 恢复窗户的位置

我可以很好地完成第 2 步和第 3 步,但是我迷失了第 1 步和第 4 步

我知道我可以为每个应用程序强制一个位置,但这不是我想要的,因为我可以做不同的事情并且在不同的位置有相同的应用程序,我也有多个终端打开,我需要以某种方式存储和恢复当前位置。

任何帮助,将不胜感激!

Jac*_*ijm 7

拍摄窗口排列的“快照”并恢复它

下面的脚本可用于获取所有“普通”窗口的当前窗口位置(使用参数运行-get),或恢复最后的窗口排列(使用参数运行-restore)。

正如解释在这里,使用wmctrlICW团结有一些问题。如果它在你的情况下令人满意是决定。

如何使用

该脚本使用wmctrl

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

然后:

  1. 将脚本复制到一个空文件中,另存为 window_arrange.py
  2. 运行它:

    python3 /path/to/window_arrange.py -get
    
    Run Code Online (Sandbox Code Playgroud)

    “记录”当前的窗口排列,以及

    python3 /path/to/window_arrange.py -restore
    
    Run Code Online (Sandbox Code Playgroud)

    恢复上次“录制”的窗口排列

剧本:

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)