Manage tabs with groups in a list view.
Notice To use this addon, you have to turn extensions.webextensions.tabhide.enabled
on in about:config
! Hiding tabs is using an experimental API currently available on firefox only.
Sometimes we have too many tabs to work with, and it must be useful to have them organized into groups.
I had been using Simplified Tab Groups, until firefox decided to stop support for legacy addons (since FF57), and the author decided to stop working on STG anymore.
It has been quite a while, and I finally started this project as a substitute, and actually a practice in learning javascript.
Currently it should work, though not very handy.
Note that this is NOT a port for STG, although quite alike.
- Handle multiple windows
- Tests, more tests
The assets located in /assets/fontawesome/
is downloaded from Font Awesome licensed with Font Awesome License, and a few changes are made to fit them in well.
See LICENSE.
- Every tab must belongs to a group;
- No group should keep invalid tab;
- A group may have 0 tabs, but when it activates, it should create a new tab in this case; when the last tab of the active group closes, create a new tab;
- There must be at least 1 group - when there is none, create 1 and add all available tabs to it (or create a new tab if none); when the last group closes, just create a new group (with a new tab), then close this one and all its tabs;
{
"active": "Group Yuki",
"groups": [{
"yuki": "Group Yuki",
"name": "Name of Group",
"active": "Tab Yuki",
"tabs": ["Tab Yuki"]
}]
}
where the active
indicates the active group/tab.
Response not included.
Messages from background
to body
:
- sent when setup completes (ready)
- when tabs are removed/created, sent for updating (tab)
{
"type": "tab | ready",
"verb": "create | remove",
"info": varied-payload
}
Messages from popup
to background
:
- sent to request information (info)
- sent to create, remove, move, rename, activate group (group)
- sent to move tab across groups (tab)
{
"type": "info | tab | group",
"verb": "create | remove | move | rename | activate",
"info": varied-payload
}