clickclack 0.3.0

A mechanical keyboard sound simulator for macOS
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cesarferreira/clickclack/blob/main/LICENSE)
[![min macOS](https://img.shields.io/badge/macOS-14.0+-silver)](#)
[![Crates.io Version](https://img.shields.io/crates/v/clickclack)](https://crates.io/crates/clickclack)
[![Crates.io Total Downloads](https://img.shields.io/crates/d/clickclack)]()

# 🎹 ClickClack
> Ever wished your keyboard sounded as fancy as those $200 mechanical keyboards your coworkers won't shut up about? Well, wish no more! ClickClack brings that sweet, sweet mechanical keyboard ASMR to your fingertips without breaking the bank! 

<p align="center">
  <img src="assets/media/ss.png" width="100%" />
</p>


## ✨ What's This Magic?

- đŸŽĩ Real-time mechanical keyboard sounds that'll make your fingers dance
- đŸŽšī¸ Sound tweaks that would make an audio engineer jealous:
  - Volume control (from "library whisper" to "wake the neighbors")
  - Frequency adjustment (from "gentle butterfly" to "angry typewriter")
  - Decay rate (from "quick tap" to "dramatic echo")
- đŸĒļ Lightweight menu bar app that sits quietly in the corner (until you start typing!)
- âšĄī¸ Lightning-fast response time (because nobody likes delayed gratification)
- 🔒 Privacy-focused (we don't care what you're typing, we just make it sound awesome)

## 🚀 Getting Started

### What You'll Need

- macOS 10.15 or later (sorry Windows users, you'll have to stick to your rubber domes... for now)
- Rust toolchain (if building from source, because we're fancy like that)

### Installation

```bash
cargo install clickclack
```

## Usage

Just run:
```bash
clickclack
```

### Building from Source

1. Clone this bad boy:
```bash
git clone https://github.com/cesarferreira/clickclack.git
cd clickclack
```

2. Build it like you mean it:
```bash
cargo build --release
```

3. Find your shiny new toy at `target/release/clickclack`

Look for the keyboard icon in your menu bar - that's your new best friend!

## âš™ī¸ Configuration

Your settings are automatically saved in `~/.config/clickclack/config.toml`. Here's an example of what it looks like:

```toml
enabled = true
volume = 0.25
switch_type = "bluealps"
```

The configuration is automatically updated when you change settings through the menu bar interface. You can also manually edit this file if you prefer.

## 🎮 How to Use This Beast

1. Click the keyboard icon (it doesn't bite)
2. Choose your destiny:
   - Toggle sounds on/off (for when you need to be sneaky)
   - Adjust volume (from "I can hear myself think" to "MAXIMUM CLICKY")
   - Pick your frequency (from "sophisticated professional" to "mad typist")
   - Set the decay (from "quick and snappy" to "echoes of eternity")
3. Type away and feel like a keyboard warrior!

## 🎹 Supported Switches

Choose your perfect sound from our curated collection of premium mechanical switches:

- **Alpaca Linear** - Smooth linear switches known for their buttery typing experience
- **Gateron Black Ink V2** - Premium linear switches with a deep, satisfying sound profile
- **Alps Blue** - Vintage clicky switches from Alps Electric with a unique sharp tactility
- **Kailh BOX Navy** - Heavy clicky switches with a thick, crisp sound signature
- **IBM Buckling Spring** - Classic switches from Model M keyboards, the grandfather of mechanical keyboards
- **NovelKeys Cream** - Self-lubricating linear switches with a unique POM housing
- **Holy Panda** - Popular tactile switches born from a BSUN/Drop collaboration, known for their rounded tactile bump
- **Cherry MX Black** - Classic linear switches, the industry standard for decades
- **Cherry MX Blue** - Standard clicky switches with that iconic mechanical keyboard sound
- **Cherry MX Brown** - Light tactile switches perfect for typing and gaming
- **Gateron Red Ink V2** - Lighter version of Black Inks with a smooth, premium feel
- **Topre** - Electro-capacitive rubber dome switches with a unique "thock" sound
- **Turquoise Tealios** - Premium linear switches with a smooth, refined feel

## 🔒 Privacy (Serious Business)

ClickClack is like a good friend - it listens only when you want it to and keeps no secrets. It:
- Doesn't log your keystrokes (we're not that kind of app)
- Doesn't care which keys you're pressing (type 'pizza' 100 times, we won't judge)
- Doesn't send any data anywhere (what happens on your keyboard, stays on your keyboard)

## âš–ī¸ License

MIT Licensed - because sharing is caring! See LICENSE file for the boring legal stuff.

## 🤝 Contributing

Got ideas? Found a bug? Want to make it even more awesome? Pull requests are like high-fives - always welcome! 

---

Made with â¤ī¸ and lots of âŒ¨ī¸ clicks!