- JavaScript 55.4%
- Python 21.8%
- Nix 13.4%
- HTML 9.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| assets | ||
| e2e | ||
| extension | ||
| nix-modules | ||
| test | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Tabberwockey
A chromium extension that enhances the experience of managing tab groups. I intend to use this with the Helium browser.
Features
Automatic Tab Grouping
For example, I want all GitLab MR tabs to automatically get put into an MRs group. These rules should persist and automatically apply.
This should basically happen when new tabs are created.
Persistent Tab Groups (Future)
I want to be able to state lifecycle rules for tab groups. I may want MR tabs to persist while other tabs are killed on close.
This should apply to customizations as well. If I say that the MRs tab group should be purple, it should be purple if I close all MRs and then open some more.
Tab Sourcing (Future)
I'd like to be able to define sources for the automatic opening of tabs. I'd like MRs to automatically be opened for example.
Loading the extension
- Open
chrome://extensionsin Helium (or any Chromium browser). - Enable Developer mode.
- Click Load unpacked and select the
extension/directory.
Configure rules from the extension's Options page. Rules are regular
expressions matched case-insensitively against tab URLs (first match wins) and
persist via chrome.storage.sync.
The extension uses a placeholder icon; sized copies live in extension/icons/
and are generated from assets/placeholder-image.png:
nix shell nixpkgs#imagemagick --command bash -c 'for s in 16 32 48 128; do magick assets/placeholder-image.png -resize ${s}x${s} extension/icons/icon-${s}.png; done'
Development
Enter the dev shell (requires nix with flakes enabled):
nix develop
- Unit tests:
node --test "test/**/*.test.mjs" - E2E tests (drives a headless Chromium with the extension loaded):
playwright test --config e2e/playwright.config.mjs - Everything CI runs:
nix flake check
The dev shell links node_modules to nixpkgs' playwright-test package and
points PLAYWRIGHT_BROWSERS_PATH at the nix-provided Chromium, so no npm
install or browser download is needed.
Note: flakes only see git-tracked files. git add new files before running
nix flake check.
CI
.forgejo/workflows/ci.yml runs nix flake check via Forgejo Actions. Adjust
the runs-on label and container image to match your runner.