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.4.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.4-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: keybind_vault-1.0.4.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.4.tar.gz
Algorithm Hash digest
SHA256 2f93bff34d3d152a782eb2a4d29f46ce6d59c1e6b0b0c03bf9ea0681d14257ca
MD5 c1b59cff774b639ea07501b8252d4aa2
BLAKE2b-256 e8e505b5f2922d9dc073e56fddcf6c212b7623ac1b5d6169f665d9365496b005

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keybind_vault-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 71d528055dbcc161a7db39a9142323648229dc1624e73ce7ab866ffa67991531
MD5 d952f2b93387824a1bdca03259ec6e90
BLAKE2b-256 901f86a614d3372e808fd4bf28bde36a0d25e1c271c0f95ad560c2c5d61403c0

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