浏览器恢复到工作区
项目描述
问题
在Linux上,在重新登录后,Firefox和Chrome可以恢复之前窗口的内容和位置。但是,它们通常不会在不同的工作空间/桌面上恢复这些窗口。
如果桌面管理器通过使用偏移量(比桌面分辨率更宽或更高)来实现工作空间,则在恢复时,偏移量会将窗口推到正确的下一个工作空间。这种工作空间设置通常意味着您将看到移动到工作空间边缘的窗口出现在下一个工作空间中。KDE似乎在2010-2013年间使用了这种方案。
浏览器需要了解EWMH,但目前它们并不了解。
部分解决方案
浏览器窗口通常在标题中包含访问的页面名称,这使得浏览器窗口的实例相对唯一可识别。基于这一点,您可以将浏览器窗口的状态保存到文件中,并将具有匹配标题的窗口恢复到原始工作空间。
如果浏览器窗口在多个工作空间中具有相同的标题并且只有不同的次要标签,则此程序将无法正确工作。如果有两个单标签窗口具有相同的标题,它们可能指向相同的URL,在这种情况下,哪个窗口被恢复到哪个工作空间,就不再那么重要(除非历史记录有区别)。
安装
首先,请确保您的Linux版本已安装wmctrl。
您可以使用pip来安装程序。
pip install ruamel.bws
您还可以使用pip安装configobj库,并直接下载和主Python文件使用。
用法
运行bws save以保存当前浏览器窗口,运行bws restore以恢复最新的保存设置。在使用bws restore之前,根据需要重新打开浏览器窗口并选择[恢复]。
Chrome需要配置为允许通过选择“继续未完成的工作”来恢复,在设置菜单中。Firefox似乎在崩溃发生时总是询问,但您也可以明确设置首选项为“显示上次关闭时的窗口和标签”
保存的.bws文件数量
保存的不同旧配置数量,可以通过命令行选项--keep或配置文件指定。默认设置为10。保存文件后,bws会将新文件与旧文件进行比较,如果内容相同,则会删除新文件并更新旧文件。如果.bws文件多于“保留”选项指定的数量,则会删除多余的旧文件。
从.bws文件的名称中可以看到它首次保存的时间,以及从它的时间戳(st_mtime,即上一次运行bws save的时间)。
配置
程序将默认配置和恢复信息保存在默认的~/.config/bws目录下的bws.ini文件或相应的*.bws文件中。保留多个恢复设置(这可能是您的隐私问题),bws list将显示保留哪些设置(带日期和时间戳)。bws restore可以接受参数来选择特定的“保存”。
配置文件允许扩展匹配/proc/PID/exe指向的模式,以确定需要保存信息的窗口。可以指定所需的最小窗口数以进行恢复(在配置文件或命令行中;命令行优先于配置文件)。此最小值防止在单个窗口打开时保存浏览器窗口,例如询问您是否确认恢复所有以前打开的窗口的窗口。
Chrome
Chrome的可执行文件以前被称为chromium-browser,这是在0.3.3之前的安装配置文件中找到的。您可能想要升级并删除bws.ini文件(以便重新生成),或者使chrome条目可读
[br-chrome] basenamestart = chromium-browser, chrome
Cron
我将bws从crontab文件每五分钟运行一次,如下所示
*/5 * * * * DISPLAY=:0 /home/anthon/bin/bws save --check
--check仅在指定与--unlock-file的文件存在时才有效。默认为/tmp/bws.restored(通常位于临时文件系统中,因此重启后不可用,从而防止进一步的保存)。
发出bws restore将删除此解锁文件,除非您指定–unlock,我在最后一次运行中这样做,在Firefox重新加载所有页面并完成恢复后。
此解锁文件防止cron写入将最终覆盖重启前有用信息的保存文件。
待办事项
检查多个出现相同字符串的窗口位置(假设位置不同,这为工作区确定提供了额外的信息)
Firefox
https://bugzilla.mozilla.org/show_bug.cgi?id=372650 https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/684982
Chrome
https://code.google.com/p/chromium/issues/detail?id=18596 https://groups.google.com/a/chromium.org/forum/#!topic/chromium-discuss/h8tY-p-gXIE
KDE曾经可以工作
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
ruamel.bws-0.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ff466535fca28f34ad4acf28fb7577b92df44a18513e46bd2060cf92dfcb813 |
|
MD5 | fd02199285b811dbfd41a6e2978997bf |
|
BLAKE2b-256 | 27a8cac3627466bdc571f7fd5fdaa31ad354b3abb49c28d66d1c3e2d2da305e9 |
ruamel.bws-0.4.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8fcf2363f467636adaa539fe480532ee1adb4b3bb34ae55ee30f67b4ce9b7489 |
|
MD5 | 34bbfcc4b270287b0f2c8b5cccdebcfd |
|
BLAKE2b-256 | a5cba256791a84e06e0522270085a140fba26f0c4bd9c0bc629ebbbb6b7bc5a2 |