将 chromium/firefox 窗口恢复到原始工作区/桌面

将 chromium/firefox 窗口恢复到原始工作区/桌面

我有一个三显示器设置,其中两个显示器由 Ubuntu 12.04 直接驱动,总工作区/桌面区域为 3840x1200 。我通常使用 5 个虚拟工作空间,如果我并行处理多个项目,通常会使用更多虚拟工作空间。我通常会打开至少 15 个浏览器窗口(大部分是 Firefox-nightly,但也有标准的 12.04 Firefox 和 Chrome)。

每当浏览器由于更新(cq 崩溃)而需要重新启动,或者需要在登录后启动时,浏览器窗口都会返回到原始位置,但所有窗口都位于同一工作区上。之后,我必须将至少 80% 的窗口乏味地移动到其他工作区²。

Firefox 和 Chrome 都不节省额外费用欧洲WMH恢复到原始工作空间所需的信息。我读过 4-5 年前关于此问题的未解决的错误报告。

看起来,至少在几年前,KDE 将工作空间管理为大偏移(比屏幕宽度宽),这允许浏览器恢复到正确的工作空间。但现在情况似乎不再如此(从错误报告中扣除,而不是从个人经验中扣除)。

是否有一个工作区/桌面管理器不具有 Firefox 和 Chrome(最好在 Ubuntu 或 Linux Mint 上)的这种将所有工作区恢复为一个工作区的行为?

或者是否有另一种方法可以增强 Firefox 和 Chrome(例如附加组件)以强制执行此行为?

我的是不是固定布局,其中工作区 Y 上的浏览​​器 X 始终打开到特定 URL。恢复功能为我提供了我想要的窗口、位置和 URL。他们“只是”需要位于正确的工作空间上。

1第三个 1200x1920 显示器位于一台单独的计算机上,用于x2vnc共享单个鼠标和键盘。这很好地保留了我的阅读材料,例如手册页和文档(在纵向模式下)。
²所有 U&L 内容都在工作区 3 上。我通常让机器保持运行状态,并保持登录状态,一次持续数周,原因之一是恢复各个窗口。

答案1

似乎没有太多动力在 Firefox 或 Chrome 中实现一些 EWMH 支持,尽管这可以解决大量桌面的工作区恢复问题。 A漏洞自 2007 年起对 Firefox 开放自 2009 年起适用于 Chrome。

你可以做什么外部Firefox 和 Chrome 的特点是,如果不同浏览器窗口中的活动 TAB 指向不同的 URL,则使用的趋势是不同的 URL 通常具有与页面相关联的不同标题,从而与显示它们的窗口相关联。

wmctrl -l -G -p从这个想法开始,您可以使用它为您提供的输出

  • 窗口编号
  • 工作区编号
  • 进程号
  • 窗口的 x,y 位置
  • 窗口的宽度和高度
  • 机器名称
  • 窗口标题(如果有)

对于每个窗口。给定进程 ID PID,您可以查看链接/proc/PID/exe指向的位置并过滤掉非浏览器窗口。对于与浏览器相关的窗口,至少保存窗口标题和工作区编号(也可能是浏览器类型和所有其他信息)。

浏览器(重新)启动后,当所有窗口都恢复但在一个工作区中时,使用保存的数据查找与特定标题关联的新窗口 ID、WID,并将其推送到检索到的相关工作区wmctrl -i -r WID -t workspacenumber


如果您不想在您选择的 shell 或脚本语言中自行实现上述内容(主要是文本处理和符号链接查找),您可以下载一个可以为您完成所有这一切(以及更多)的程序。或者您可以从安装它皮伊使用:

sudo pip install ruamel.bws

之后,该bws命令应该可以使用以下选项save(保留多个保存,默认情况下为 10 个)、list(显示保存的日期和保存的窗口数量)或restore(默认情况下最新保存的信息)。

相关内容