Project Logo

KeyVibe

A C-based CLI tool that brings realistic mechanical keyboard sounds to every keystroke.

KeyVibe listens to your keyboard events and plays high‑quality switch sounds with low latency. It ships with multiple sound packs and supports your own custom packs. Run it interactively or as a background daemon with live reload of your preferences.


✨ Features

  • Real-time key press/release sound playback
  • Multiple bundled sound packs
  • User sound packs under ~/.local/share/keyvibe/audio/
  • Background daemon mode with PID file and safe shutdown
  • Live config reload on ~/.keyvibe.json changes (daemon mode)

📋 Dependencies

  • build-essential
  • pkg-config
  • libjson-c-dev
  • libpulse-dev
  • libsndfile1-dev
  • libinput-dev
  • libevdev-dev
  • libudev-d

🚀 Installation

Arch Linux

yay -S keyvibe-git

🛠️ Build From Source

git clone https://github.com/S4NKALP/KeyVibe.git
cd KeyVibe
make
sudo make install

💡 Usage

Usage: keyvibe [OPTIONS]

Options:
  -S, --sound SOUND_NAME        Select sound pack (default: eg-oreo)
  -V, --volume VOLUME           Set volume [0-100] (default: 50)
  -c --override-config          Use CLI values for this run
  -d --daemon                   Run as a background daemon
  -s --stop                     Stop the background daemon
  -m --mute                     Mute sound
  -u --unmute                   Unmute sound
  -l, --list                    List available sound packs
  -h, --help                    Show this help message
  -v, --verbose                 Enable verbose output

Notes:

  • First run creates ~/.keyvibe.json. Subsequent runs use it unless -c is supplied.
  • In daemon mode, editing ~/.keyvibe.json will automatically reload.

🎵 Sound Packs

System packs are installed under: /usr/share/keyvibe/audio/

User packs go under: ~/.local/share/keyvibe/audio/<pack-name>/

Required files inside each <pack-name>/ directory:

  • config.json (format matches bundled packs)
  • Audio files referenced by config.json

Resolution order when selecting -s <name>:

  1. ~/.local/share/keyvibe/audio/<name>/
  2. /usr/share/keyvibe/audio/<name>/

List shows (user) or (system) source next to each pack.

🤝 Contributing

PRs welcome. Please keep code modular and readable, and prefer small, focused changes.

📄 License

MIT — see LICENSE.

S
Description
A CLI tool that brings realistic mechanical keyboard and mouse sounds to every interaction.
Readme MIT
22 MiB
0 Stars 1 Watchers 0 Forks
V0.3
Latest
2026-02-21 21:24:56 +00:00
Languages
C 96.5%
Makefile 3.5%