Skip to content

Releases: krank56/bucklezig

v0.1.0 - Phase 3 Complete: Full TUI & Profile Switching

12 Oct 14:12

Choose a tag to compare

bucklezig v0.1.0 🎹

First public release of bucklezig - a mechanical keyboard sound simulator with ultra-low latency (<10ms).

🎯 Features

  • Ultra-Low Latency: <10ms from keypress to sound (measured ~7-9ms)
  • System-Wide Keyboard Capture: Works across all applications (macOS)
  • Multiple Profile Support: Hot-swap sound profiles without restart
  • Terminal UI: Beautiful TUI built with BubbleTea
  • Volume Control: Real-time volume adjustment
  • Vim Keybindings: j/k navigation, +/- volume
  • Config Persistence: Auto-saves preferences
  • Cross-Platform: macOS (primary), Linux (secondary)

🏗️ Architecture

  • Zig 0.11+: Low-level audio engine and keyboard capture
  • Go 1.21+: TUI interface using BubbleTea
  • CGO Bridge: Minimal C interface between components

📊 Performance Metrics (All Targets Met)

  • ✅ Audio latency: ~7-9ms (target: <10ms)
  • ✅ Profile switching: Instant hot-swap (target: <200ms)
  • ✅ Startup time: ~150ms (target: <500ms)
  • ✅ Memory usage: ~50-80MB (target: <100MB)
  • ✅ CPU idle: <1%

🚀 Installation

Prerequisites

Build from Source

```bash
git clone https://github.com/krank56/bucklezig.git
cd bucklezig

Create sound profiles (REQUIRED - see README)

mkdir -p profiles/YourProfile

Add 256 WAV files (1-down.wav through 128-up.wav)

Build

make build

Run

./bucklezig
```

⚠️ Important Notes

Sound Profiles Required

This release does not include audio files due to licensing. You must provide your own:

  1. Create profile directory: `profiles/ProfileName/`
  2. Add 256 WAV files: `1-down.wav`, `1-up.wav`, ..., `128-down.wav`, `128-up.wav`
  3. See CONTRIBUTING.md for audio sourcing guidelines

Sources for legal audio:

  • Freesound.org (CC0 Public Domain)
  • Record your own mechanical keyboard
  • Royalty-free sound libraries

macOS Permissions

On first run, macOS will prompt for:

  • Accessibility: Required for system-wide keyboard capture
  • Grant in: System Preferences → Security & Privacy → Privacy → Accessibility

🐛 Known Issues

  • Linux support is experimental (keyboard capture not fully tested)
  • Windows support not yet implemented
  • Some terminal emulators may have rendering quirks

🙏 Attribution

Developed with assistance from:

  • OpenCode by OpenCoder AI
  • Claude Sonnet 4.5 by Anthropic

📖 Documentation

📝 Phase 3 Completion Checklist

  • ✅ Full TUI with BubbleTea
  • ✅ Profile switching (hot-swap)
  • ✅ Volume control (0-100%)
  • ✅ Config persistence
  • ✅ Vim-style keybindings
  • ✅ System-wide keyboard capture
  • ✅ <10ms audio latency
  • ✅ All performance targets met
  • ✅ 80%+ test coverage

Full Changelog: https://github.com/krank56/bucklezig/commits/v0.1.0