Skip to content

A Chrome extension that allows to bookmark tab groups.

License

Notifications You must be signed in to change notification settings

nadvotsky/bookmark-tab-groups

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bookmark-tab-groups

This repository contains the source code for a Chrome extension that allows to bookmark tab groups.

Screenshot

Main popup window

Overview

Lightweight, Manifest v3 (MV3) extension that automates bookmarking tabs within tab groups. It offers several advantages:

  • Seamless Integration: Uses native bookmarking functionality and does not create separate folders or its own storage.
  • Accurate Recognition: Correctly identifies and captures tab group names and colors.
  • Multi-Window Support: Queries tabs across multiple windows.
  • Optional Tab Closure: Provides the option to close bookmarked tabs after saving.
  • Flexible Naming: Suggests an autogenerated timestamp, but also allows searching existing folders for specific placement.

Requirements

Rationale

Initially, the native "Bookmarks > Bookmark all tabs" feature lacked support for tab groups, storing them all in a single folder and ignoring their structure. This extension was created to address this limitation.

At the time, there was no such simple, lightweight, and open-source extension available that could make bookmarking easier.

However, significant developments have since occurred:

  • Bookmarks -> Boomark all tabs now recognizes tab groups and creates individual folders for them.
  • The #tab-groups-save flag was introduced.

Despite these advancements, this project remains relevant for several reasons:

  • When using Bookmarks -> Boomark all tabs, there is no option to target specific groups, aside from creating a separate browser window and relocating tab groups to it. This process can be time-consuming and inconvenient, particularly when managing a large number of tabs that are suspended.

  • The #tab-groups-save feature requires enabling a flag and operates outside the regular bookmarking system Saved tabs cannot be directly integrated into existing folders nor can be exported as the regular Netscape Bookmarks file. This format is convenient for transferring bookmarks across browsers and environments, as well as many libraries and scripts support it. In this regard, the feature resembles Firefox containers, which are suited for specific, isolated groups like "work" or "videos" but not for frequently changing tab groups.

Building

This project utilizes the following libraries, tools and technologies:

Development is enhanced by:

Preparation

Run a regular dependency resolution routine:

npm install

Linting

Linting can be started with the following command:

npm run lint

Formatting

To format code using the Prettier, run this command:

npm run format

Build

Building can be performed using as follows:

npm run build

This creates the dist directory with the following structure:

dist/
├── bookmark-tab-groups/
│   ├── ...
│   └── manifest.json
├── bookmark-tab-groups.crx
├── bookmark-tab-groups.zip
└── key.pem

where:

  • dist/bookmark-tab-groups: Unpacked extension bundle.
  • dist/bookmark-tab-groups.zip: Unsigned extension.
  • dist/key.pem: Private key for signing (automatically generated if not provided).
  • dist/bookmark-tab-groups.crx: Signed extension.

Note: Minification is not performed due to the small code size. But it can be added using rollup plugins like @rollup/plugin-terser or rollup-plugin-minify.

License

This project is licensed under the MIT License.

About

A Chrome extension that allows to bookmark tab groups.

Topics

Resources

License

Stars

Watchers

Forks