自动创建、保存和管理 Chrome 标签分组(Tab Groups)功能的扩展程序

2021-04-03 19:53:53 +08:00
 hanguokai

Chrome 原生的标签组功能

去年 (2020 年) Chrome 推出了标签组 (Tab Groups) 功能,网上有很多介绍。简单地说,标签组功能是在浏览器中“可视化”地将标签页分组显示。使用效果上看,将相关的标签归并到一起,看起来井井有条、很舒服,也有利于提升工作效率。

具体操作层面,通过鼠标点击、右键点击和拖拽可以完成以下功能:

此外,标签组还有几个默认行为:

扩展功能介绍

以上这些就是标签组的基本功能。但是很多人在尝试了之后,感觉自己平时很少使用这些功能。因为这些功能都需要用户自己手工处理。而日常大多数页面都是随用随开,用完即关,这样标签页本身是经常变化的,进而标签组也就不稳定。分组关闭之后,每次再重新手工建立和管理太麻烦了。

所以我新做了一个扩展程序,目标就是解决这些问题,让标签组功能更好用。因为管理原生标签组功能的 API 是从 Chrome 89 (2021 年 3 月初发布) 才有的,所以目前支持这方面功能的扩展应该还很少。具体功能如下:

1. 自动分组

通过自定义匹配规则,为标签页自动创建分组,这样解决了手工创建分组的麻烦。 规则支持对页面的域名、URL 或页面标题进行匹配。可以创建一条或多条匹配规则,匹配之后会自动创建分组或合并到现有的分组中。 注:自动分组仅针对未被分组的标签。

比如你可以创建一条规则,将所有 V2EX 页面自动合并到名为 V2 的标签组中。

2. 保存和恢复

扩展支持一键保存当前打开的标签和分组(快照)。 因为分组中的标签并不是一成不变的,所以这里使用了快照的概念,同一个分组可以保存多个快照,每个快照保存的是分组的当前状态(标签和 URL)。 恢复也是一键打开,点一下即可打开某个保存的标签或分组。比手工使用书签实现类似的功能更加快捷。

3. 标签和分组管理功能

扩展会列出当前的所有标签,支持激活、关闭标签,修改分组名称和颜色等功能。

4. 快捷键

扩展提供了大量可自定义的标签和分组管理的快捷键,比如移动、关闭标签或分组,添加分组、取消分组等。

安装

Chrome 扩展商店链接: https://chrome.google.com/webstore/detail/nplimhmoanghlebhdiboeellhgmgommi

正如前面所说,此扩展需要 Chrome 或 Edge 浏览器 89 及以上版本才能使用。Edge 浏览器可能没有默认开启标签组功能,可以在地址栏上输入 edge://flags/#edge-tab-groups,手工开启该功能。

PS:这是刚刚通过 Web Store 审核上线的第一版,欢迎试用。

5384 次点击
所在节点    分享创造
48 条回复
airyland
2021-04-03 20:04:48 +08:00
添加规则后,已有标签是否不会执行分组?
hanguokai
2021-04-03 20:18:37 +08:00
@airyland 新页面或页面 URL 、标题有变化的时候才会应用规则。规则可以随时添加、修改、删除,通常建好之后不会经常改。
airyland
2021-04-03 20:29:57 +08:00
@hanguokai 已经用上,实现了我之前类似扩展的想法。
hanguokai
2021-04-03 21:04:35 +08:00
随便给大家分享个小技巧:Shift+鼠标点击 或 Cmd/Ctrl+鼠标点击 可以同时选择多个标签页,然后鼠标右键或快捷键就可以一次将多个标签页添加到分组了。
deqxj00
2021-04-03 22:56:16 +08:00
激活分组的快捷键 能做成按一次展开 再按一次缩回去这样的么
hanguokai
2021-04-03 23:13:53 +08:00
@deqxj00 你这么一说我感觉好像会有这种需求。

如果利用目前提供的快捷键,则需要:1.先激活过去; 2.再利用收缩 /展开快捷键。

我想也许再提供一套 1-9 的快捷键,用来收缩 /展开第 n 个分组。
稍后我再考虑考虑,也许过些天、下个版本加上。
deqxj00
2021-04-04 00:37:54 +08:00
@hanguokai 或许可以做个 Toggle,1-9 快捷键可以自定义用“展开”或者“展开 /收缩” 这样。
Tink
2021-04-04 01:17:55 +08:00
要是能用 ai 语义识别标签页自动归类就好了
codehz
2021-04-04 05:00:59 +08:00
创建规则后 tab 崩溃,触发错误 STATUS_ACCESS_VIOLATION
hanguokai
2021-04-04 13:05:22 +08:00
@codehz 虽然我还没遇到过,不过这种问题一般是浏览器内部的 bug 。需要提供可复现的方法提交到 https://bugs.chromium.org/p/chromium/issues/list,或者可能其他人已经反馈了,等几个月或几年可能就修复了。
wd
2021-04-05 09:40:21 +08:00
扩展很好用,`从标签组中打开的新页面自动归属当前标签组` 这个居然不能关闭么? 试过 chrome://flags/#tab-groups-auto-create 好像没用的样子。

另外,感觉 chrome 的这个 tab group 还是有奇怪。不会自动缩回去,缩回去之后通过快捷键挨个切换 tab 的时候,居然会跳过缩回去的 group 。。
hanguokai
2021-04-05 12:34:50 +08:00
@wd 我在做的过程中也感觉到一些行为细节是“应该这样,还是应该那样?”。对一些人可能这个设定是好的,但另一些人可能不希望这样。Google 官方也没有完全想好。

比如说,`从标签组中打开的新页面自动归属当前标签组` 这个默认行为我可以在扩展中覆盖掉,但这意味着要对已经处于分组中的标签重新分组。这可能是一部分用户期望的,但也可能造成一些用户不期望的副作用。所以我发布的第一版里没这么做。目前我在考虑增加一个设置选项来支持,默认状态还是应该保留浏览器的默认行为。
wd
2021-04-05 14:20:53 +08:00
@hanguokai 我感觉那个动作和你这个扩展的 rule 是一个不匹配的情况。创建 rule 的本意就是用 rule 来分组,用户应该不想在一个 news 的分组里面把 github 放进去吧?我本来是把 google 分了一组,结果发现从 google 打开的页面也进入了那个分组。

主要是为啥我通过修改那个 flag 不能关闭?奇怪...
hanguokai
2021-04-05 14:56:13 +08:00
@wd 比如说把 google 搜索结果页设置为一个“搜索”分组,那么从搜索结果页中打开的链接(按默认行为)会自动属于这个分组。这倒是也能说得通,因为这些页面之间存在相关性(都是为了解决同一个问题,由同一个页面延展而来);这样还有一个好处:搞定问题之后可以整体关闭这个分组。所以看怎么理解和使用分组了。当然,如果用户期望的是从搜索结果打开的页面被自己建立的规则匹配,而不是划分为搜索分组,这也很合理。所以我准备增加一个选项,让用户自己来设置。未来可能还需要允许设置规则的优先级。我这几天再考虑一下,可能会先把那个选项加上。

> 主要是为啥我通过修改那个 flag 不能关闭?
tab groups 相关的功能去年已经正式推送到 Chrome 稳定版。按 Google 的惯例,相关的 flag 可能就不再有效了。足够稳定之后,未来可能会删掉相关的 flag 。
wd
2021-04-05 15:02:18 +08:00
@hanguokai 嗯 你说的这个也有道理。group 我用的不多,感觉还需要用用才能明白需要什么。
cutemurphy2000
2021-04-05 16:43:12 +08:00
hanguokai
2021-04-05 17:24:20 +08:00
@cutemurphy2000 😄
PS: 其实这里只用了 Bootstrap 5,而 BS 5 已经不依赖 jQuery 了。剩下的 100% 纯手工 vanilla JS 。
0A0
2021-04-05 23:21:54 +08:00
@hanguokai 雪中送炭的扩展!被 google 自带的分组功能很很坑了好几次终于受不了再找插件替代。chrome 默认的分组如果缩起来后关掉 chrome 再打开然后恢复上次打开的标签页时,所有分组里的标签全部都会丢失掉。因为这个要死不死的辣鸡机制丢了好几次重要的标签。
看了下这个扩展里有快照功能,但是没办法自动(定时)保存或关闭 chrome 前自动保存全部分组快照,需要手动点保存,如果分组太多的话一个一个点有点麻烦,快照快捷键也没有,但是还是超级好用的插件。能加上快照自动保存相关的功能的话就完美了,希望能够实现。
hanguokai
2021-04-06 00:00:41 +08:00
@0A0 感谢反馈!目前分组可以保存一个或多个快照但需要手动保存。因为分组里的标签经常变化,所以我也感觉自动保存还是挺有用的。稍后我考虑下怎么实现。
codehz
2021-04-06 01:03:07 +08:00
啊,原来除了设置界面会 crash,后台跑的 service worker 也会在操作的时候触发崩溃啊,devtools 直接断开连接(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX