Skip to main content

Text User Interface (TUI) that allows users to manage keybindings

Project description

Keybind Vault

A TUI (Text-based User Interface) app built with Textual for managing your keyboard shortcuts. Organize, search, add, edit, and delete keybinds in a sleek terminal interface.


Features

  • Dark Mode toggle
  • Search keybinds by keys, name, or description
  • Add, Edit, Delete keybinds
  • Organize keybinds into categories
  • Uses a lightweight sqlite3 database for storage

Demo

Getting Started

For Contributors / Developers

If you want to clone the repo, modify code, and work on the project locally:

1. Clone the repository

git clone https://github.com/thompsonrm/Keybind-Vault.git
cd Keybind-Vault

2. Set up a virtual environment

# With Python's built-in venv
python -m venv .venv

# Or with uv
uv venv

# Activate the environment (Windows)
.venv\Scripts\activate

# Or on Unix/macOS
source .venv/bin/activate

3. Install dependencies and set up in editable mode

# Sync dependencies (using uv)
uv sync

# Install package in editable mode
uv pip install -e .

This allows you to edit the code and test changes without reinstalling.

4. (Optional) Install development dependencies

# With pip
pip install .[dev]

# Or with uv
uv pip install .[dev]

Installs tools like ruff for linting and formatting.


👤 For Users

If you just want to install and use Keybind Vault from PyPI:

1. Install via pip

pip install keybind-vault

Or, using uv:

uv pip install keybind-vault

2. Use the CLI

keybind-vault

This runs the TUI to manage your keybindings.

3. Uninstall if needed

pip uninstall keybind-vault

🛠️ Development Commands

# Format code
uv run ruff format .

# Run linter
uv run ruff check .

Project Structure

keybind_vault/
│
├── db/                    # SQLite database logic
│   ├── __init__.py
│   └── sqlite_db.py
│
├── modals/                # Textual modal screens for Add, Edit, Delete, etc.
│   ├── styles/            # Textual CSS for the modal screens
│   ├── add_modal.py
│   ├── delete_modal.py
│   ├── edit_modal.py
│   ├── search_modal.py
│   ├── vault_types.py
│   └── __init__.py
│
├── styles/
│   └── styles.tcss        # Textual CSS for the main file
│
├── main.py                # Main Textual app logic
└── __init__.py

Technologies Used

  • Python 3.13+
  • Textual — modern TUI framework for Python
  • Uv An extremely fast Python package and project manager, written in Rust.
  • Ruff An extremely fast Python linter and code formatter, written in Rust.
  • SQLite (via sqlite3 module)

Issues

  • Opening the search modal before other screen modals will result in visual issues.

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

keybind_vault-1.0.3.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keybind_vault-1.0.3-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file keybind_vault-1.0.3.tar.gz.

File metadata

  • Download URL: keybind_vault-1.0.3.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for keybind_vault-1.0.3.tar.gz
Algorithm Hash digest
SHA256 e5e471169fefbc716cd5a3995841ddb29eabb5d4a7ebb0d25fd640c2ac356efa
MD5 70c8430e73cfb0d1e333950e62d8ae78
BLAKE2b-256 4aefbec95d4106dfc6dcd979e2b4e4fed5a43c9382a68de909476f577497e5f2

See more details on using hashes here.

File details

Details for the file keybind_vault-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for keybind_vault-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a9f2913f4be63365e34d6a656dd3230f3e780c135025f6bdfa446e2775504d4f
MD5 2cdb2cb33f2187a8386912f5199fd35b
BLAKE2b-256 30635c3893c6c7b98976c6a7e0fc876ab3a9647e97161259f9a7057fb6292049

See more details on using hashes here.

Supported by

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