Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/shubhexists/moann
- Owner: shubhexists
- License: mit
- Created: 2024-11-14T19:23:05.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-23T13:34:42.000Z (about 1 month ago)
- Last Synced: 2024-11-23T13:46:55.434Z (about 1 month ago)
- Topics: keyboard, keypressevent, mechanical-keyboard, soundboard
- Language: Rust
- Homepage:
- Size: 48.8 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
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 efficientlyThis 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.