Skip to content

gangulwar/taptap

Repository files navigation

TapTap

TapTap is a lightweight desktop utility that brings the satisfying auditory feedback of mechanical keyboards to your entire system. Developed with Kotlin Multiplatform, it simulates various mechanical switch profiles with minimal overhead and near-zero latency.

Performance & Optimizations

To ensure the typing experience feels native and responsive, TapTap implements several high-level optimizations:

  • Low-Latency Audio: Uses a specialized audio pipeline via the Java Sound API to play PCM samples instantly upon key detection, bypassing traditional high-latency playback methods.
  • System-Wide Execution: Hooks into the OS event queue to intercept keystrokes globally, ensuring consistent feedback across all applications without requiring focus.
  • Zero-Lag UI: Built with a reactive state management pattern using Compose Multiplatform and Kotlin Coroutines, keeping the interface fluid even during high-speed typing.
  • Resource Efficient: Pre-caches audio assets into memory and utilizes a slim execution profile to minimize CPU and RAM usage while running in the background.

Under the Hood

The project leverages a modern tech stack to achieve cross-platform capability:

  • Kotlin Multiplatform: The core logic and state management are shared across platforms.
  • JNativeHook: Provides the system-level keyboard hooking mechanism.
  • Compose Multiplatform: Powers the declarative management interface and system tray integration.
  • Sound Profiles: Includes a variety of high-fidelity switch samples (Alpaca, Black Ink, Holy Panda, Buckling Spring, etc.) mapped to specific key event phases.

Prerequisites

macOS Accessibility

Due to its system-level input monitoring, TapTap requires Accessibility permissions on macOS:

  1. Open System Settings.
  2. Go to Privacy & Security > Accessibility.
  3. Enable TapTap (or your terminal/IDE if running from source).

Getting Started

Build and Run

Use the Gradle wrapper to launch the application:

macOS / Linux

./gradlew :composeApp:run

Windows

.\gradlew.bat :composeApp:run

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published