PyMarks (WIP)
🌟 About
PyMarks is an efficient Python program designed to manage bookmarks. It uses SQLite3
as a database to store your bookmarks, which allows you to add, delete, and update
them as necessary.
To make it easier to access your bookmarks, PyMarks provides a
menu system using tools like Dmenu, Rofi, or fzf in the terminal. With this menu
system, you can search and fuzzy find the bookmark you are looking for and then open
it in your preferred web browser. Is an excellent tool for organizing and
accessing bookmarks.
⚡️ Requirements
📦 Installation
You can install this tool using pipx (recommended), pip or by cloning
the repository
⭐ Using pipx (recommended)
pipx install pymarks
Using pip
pip install pymarks
Clone repository
# clone repository
$ git clone "https://github.com/haaag/PyMarks"
$ cd PyMarks
# create virtual environment & source
$ python -m venv .venv && source .venv/bin/activate
# install dependencies
$ pip install -r requirements.txt
# run
$ pymarks
🚀 Usage
$ pymarks --help
PyMarks is a simple tool to assist you in efficiently
organizing and managing your bookmarks.
The tool simplifies the process of accessing, adding, updating,
and removing bookmarks.
supported menus:
['dmenu', 'rofi', 'fzf']
options:
-a, --add Add bookmark
-c, --copy Copy bookmark to system clipboar (default)
-o, --open Open bookmark in default browser
-m, --menu Select menu (default: rofi)
-j, --json JSON formatted output
-V, --version Show version
-h, --help Show help
-v, --verbose Verbose mode
optional environment variables:
PYMARKS_HOME Overrides default PyMarks location
PYMARKS_BACKUP_MAX_AGE Overrides backup age check interval
PYMARKS_BACKUP_MAX_AMOUNT Overrides backup max amount
⌨️ Keybinds (rofi exclusive)
Using rofi, you can use some keybinds.
| Keybind | Description |
|---|---|
| Alt+a | Add new record |
| Alt+c | Change database |
| Alt+d | Record detail |
| Alt+e | Record options edit, delete |
| Alt+i | App information databases, keybinds |
| Alt+t | Filter by tag |
📁 Folder structure
Directory structure $XDG_CONFIG_HOME/pymarks
$ ~/.config/pymarks (main*) tree
├── backup
│ ├── YYYY-MM-DD_bookmarks.db
│ └── YYYY-MM-DD_bookmarks.db
└── databases
├── bookmarks.db <-- Default
├── trash.db <-- Deleted records
├── private.db
└── work.db
🔥 Similar projects and inspiration
- Buku 🌟 Thank You 🤘
Done
TODO
Priority
| Description | Progress |
|---|---|
Use XDG_DIRS |
|
Add encrypt/decrypt option to database |
|
Create deleted/removed table |
|
Get keybinds in dmenu/fzf to work |
Environment variables
| Description | Progress |
|---|---|
| PYMARKS_HOME | |
| PYMARKS_BACKUP_MAX_AGE | |
| PYMARKS_BACKUP_MAX_AMOUNT |
Actions
| Description | Progress |
|---|---|
| Update record (tags, URL) | |
| Delete record (tags, URL) | |
| Option to switch databases | |
| Option to add/remove database | |
| Option to show information (backups, keys, records, etc) | |
Scrape title from website |
|
Scrape Description from website |
|
| Multi-Select (for delete? for migrate? for any action…🤔) |
Databases
| Description | Progress |
|---|---|
| Add support for multi-database (e.g: personal and work) | |
trash.db or dump.db for deleted records |
|
Option to restore from deleted to bookmark table |
|
Option to search in ALL databases |
Backups
| Description | Progress |
|---|---|
Prompt for backup every <PYMARKS_BACKUP_MAX_AGE> number of days |
|
| Option to disable check on runtime | |
Keep <PYMARKS_BACKUP_MAX_AMOUNT> of backup files |
Misc
| Description | Progress |
|---|---|
Add renumbered for the rowid (Each time a record is deleted?) |
|
validation when reading from clipboard |
Metadata
Release files for pymarks 0.0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pymarks-0.0.13.tar.gz | 19.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pymarks-0.0.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.4 kB
Release files / pymarks-0.0.13.tar.gz
| Download URL | pymarks-0.0.13.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0157eba309b7c8b68173cdc14808e0edea37996a107cfc1828cf6e9d0e8b77e
|
|
BLAKE2b-256 checksum How to use checksums |
641295643c1114869044dc12ff612dfecc2482654953f32a7cc89cac7d368ce4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.24.1
|
Release files / pymarks-0.0.13-py3-none-any.whl
| Download URL | pymarks-0.0.13-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9195ef4e06f3f640321750d13f14b3b40872a00618455c6b560ffaf3b1ad565e
|
|
BLAKE2b-256 checksum How to use checksums |
0246ad5ac7e499175a2fdc7ae4968e607af9647475ddd0af89a9d99d54d60565
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.24.1
|