将Chrome / Firefox窗口还原到原始工作区/桌面


9

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

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

Firefox和Chrome都不保存还原到原始工作区所需的额外EWMH信息。我已经阅读了4-5年前有关此问题的未解决的错误报告。

似乎,至少在几年前,KDE将工作空间管理为大偏移量(比屏幕宽度宽),这使浏览器可以还原到正确的工作空间。但这似乎不再是事实了(从错误报告中扣除,而不是从个人经验中扣除)。

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

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

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

¹ 第三台1200x1920显示器在另一台计算机上,x2vnc用于共享一个鼠标和键盘。这样可以很好地使我的阅读材料(如手册页和文档)可用(纵向)。
² 所有U&L东西都在工作区3上。通常,我一次要让机器保持运行状态并保持登录状态数周,原因之一是恢复了各种窗口。

Answers:


6

尽管可以通过大量台式机解决工作区恢复问题,但似乎没有太多动机在Firefox和Chrome中实现某些EWMH支持。一个错误自2007年以来和是开放的Firefox的一个自2009年以来为Chrome。

如果在不同浏览器窗口中的活动TAB指向不同的URL,那么您可以 Firefox和Chrome 之外执行的操作是使用趋势,即不同的URL通常具有与页面相关的标题,因此与显示它们的窗口具有不同的标题。

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

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

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

浏览器(重新)启动后,所有窗口都还原后,但是在一个工作空间中,请使用保存的数据查找与特定标题关联的新窗口ID WID,然后使用将其推送到检索到的相关工作空间wmctrl -i -r WID -t workspacenumber


如果您不想自己选择使用Shell或脚本语言来实现上述功能(主要是文本处理和符号链接查找),则可以下载一个程序来完成所有这些工作(甚至更多)。或者您可以使用以下方法从PyPI安装它:

sudo pip install ruamel.bws

之后,该bws命令应该可用,并具有以下选项save:(保留多次保存,默认为10),list(显示保存的日期以及保存的窗口数)或restore(默认为最新保存的信息)。


Firefox 75包含了一些必要的api,但有几点警告hg.mozilla.org/integration/autoland/rev/323e2a212629
Braiam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.