我有一个三显示器设置,其中两个显示器由 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
(默认情况下最新保存的信息)。