Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shubhexists/moann

Faster and efficient mechvibes.com alternative written in Rust
https://github.com/shubhexists/moann

keyboard keypressevent mechanical-keyboard soundboard

Last synced: about 1 month ago
JSON representation

Faster and efficient mechvibes.com alternative written in Rust

Awesome Lists containing this project

README

        

# Moann

A lightweight, multithreaded alternative to Mechvibes for mechanical keyboard sound simulation, written in Rust. This CLI tool provides blazing-fast performance with minimal resource usage.

## Features

- ⚡ Lightning-fast response time through multithreading
- ðŸĶ€ Written in Rust for optimal performance and safety
- ðŸŠķ Minimal resource footprint
- ðŸŽŪ Simple CLI interface
- ðŸŽđ Real-time keyboard sound feedback
- ðŸ’ŧ Cross-platform support
- 🔧 Zero configuration needed

## Installation

### From Source

Requires Rust toolchain (1.70.0 or newer):

```bash
cargo install moann
```

## Quick Start

Simply run the following command to start the keyboard sound simulation:

```bash
moann start
```

## System Requirements

- Any modern operating system (Windows, macOS, Linux)
- Audio output device
- Minimal storage space (~10MB)

## How It Works

Moann leverages Rust's powerful concurrency model to process keyboard events and play sounds with minimal latency:

1. Main thread: Handles user input and CLI interface
2. Event listener thread: Captures keyboard events using native OS APIs
3. Audio thread: Manages sound playback with minimal latency
4. Resource thread: Handles file system operations efficiently

This architecture ensures that sound playback never blocks keyboard input processing, resulting in a seamless experience.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. Make sure to run:

```bash
cargo fmt
cargo clippy
cargo test
```

## Troubleshooting

### Common Issues

1. **Sound not playing**
- Ensure your system's audio is not muted
- Check if the correct audio output device is selected
- Verify that you have the required permissions

### Debug Mode

Run with debug logging enabled:

```bash
moann start --debug
```

### Building from Source

If you encounter any issues building from source, ensure you have:

1. Latest stable Rust toolchain
2. Required system dependencies:
- Linux: `libasound2-dev`, `libxi-dev`and `libxtst-dev`
```
sudo apt install libxi-dev libxtst-dev libasound2-dev
```
- macOS: XCode command line tools
- Windows: No additional dependencies

## License

MIT License - feel free to use this software for any purpose.

## Credits

Inspired by the original Mechvibes project, but rewritten from scratch in Rust with performance in mind.