Skip to main content

Simple tool to manage your bookmarks

Project description

Python SQLite Hatch project linting - Ruff code style - Black types - Mypy License - MIT

PyMarks (WIP)

🌟 About

PyMarks is a Python program designed to help you manage your bookmarks in a more efficient way. Uses SQLite3 as a database to store your bookmarks, allowing you to add, delete and update them as needed.

To make it easier to access your bookmarks, the program provides a menu system that can be accessed using tools such as Dmenu, Rofi or fzf in terminal. With this menu system, you can search and fuzzy find the bookmark you're looking for, and then open it in your preferred web browser. PyMarks is a great tool for anyone who wants to keep their bookmarks organized and accessible.

⚡️ Requirements

  • Rofi (You have more options)
  • dmenu (Optional)
  • fzf (Optional)
  • xclip (clipboard)

📦 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.

options:
    -m, --menu                  Select menu (default: rofi)
    -V, --version               Show version
    -h, --help                  Show help
    -v, --verbose               Verbose mode

supported menus:
   ['dmenu', 'rofi', 'fzf']

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)

If using rofi, you can use some keybinds.

Keybind Description
Alt+a Add new bookmark
Alt+e Record options
Alt+t Filter by tag
Alt+d Record detail
Alt+c Change database
Alt+i App information

TODO: Find a way to work with dmenu,fzf

📁 Folder structure

Directory structure (directory: $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

🔥 Inspiration

  • Buku 🌟 Thank You 🤘
Done

TODO

Project

Description Progress
Use XDG_DIRS 100%

Environment variables

Description Progress
PYMARKS_HOME 100%
PYMARKS_BACKUP_WATCH 100%
PYMARKS_BACKUP_MAX_AGE 100%
PYMARKS_BACKUP_MAX_AMOUNT 100%

Actions

Description Progress
Update record (tags, URL) 100%
Delete record (tags, URL) 100%
Option to switch databases 100%
Option to add/remove database 100%
Option to show information (backups, keys, records, etc) 100%
Scrape title from website 100%
Multi-Select (for delete? for migrate? for any action…🤔) Planned

Databases

Description Progress
Add support for multi-database (e.g: personal and work) 100%
Create trash.db or dump.db for deleted records 100%
Option to search in ALL databases Planned

Backups

Description Progress
Prompt for backup every <PYMARKS_BACKUP_MAX_AGE> number of days 100%
Option to disable check on runtime 100%
Keep <PYMARKS_BACKUP_MAX_AMOUNT> of backup files 100%

Misc

Description Progress
Add renumbered for the rowid (Each time a record is deleted?) Planned
Add URL validation when reading from clipboard Planned

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymarks-0.0.5.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

pymarks-0.0.5-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file pymarks-0.0.5.tar.gz.

File metadata

  • Download URL: pymarks-0.0.5.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pymarks-0.0.5.tar.gz
Algorithm Hash digest
SHA256 257b632e7df2dc460b92a1b1230129e1f201a6ea4382444bc3bab59f69e7ca4d
MD5 952107696436ff73fb33ad3d38a2a920
BLAKE2b-256 c1eac49871c103a663308d6f88b7742b4eca565b26fcf51c3b91e3c4b7f2886e

See more details on using hashes here.

File details

Details for the file pymarks-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: pymarks-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pymarks-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d8c8d0661214e14761a0caf1ac2d01b023060a6856bc2c3b1b62adcb81e3da3a
MD5 f2ed4f3a4245275c5d41b276ffbe174a
BLAKE2b-256 cb407ab5073bdea84c6a028cefba29749b293a2d3fa351889ddd3effc2a97d16

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page