Skip to content

kagesyntax/MechKey-ASMR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎧 ASMR - Thocky Input Engine (NK Cream Edition)

Transform your typing and clicking experience into a satisfying ASMR session. This Rust-based application monitors your global keyboard and mouse inputs and plays high-quality mechanical keyboard sounds (NK Creams) in real-time.

Rust Platform License

✨ Features

  • Global Input Monitoring: Works across all applications, even when minimized.
  • NK Cream Mechanical Sounds: Authentic, high-fidelity mechanical keyboard and mouse click samples.
  • Dynamic Pitch Variance: Subtle random pitch shifts for each keypress to ensure a natural, non-repetitive sound.
  • Low Latency: Built with Rust's rodio and rdev for near-instant auditory feedback.
  • Background Operation: Can be bundled as a macOS App or run as a background process.

🚀 Quick Start

Prerequisites

Running Locally

  1. Clone or download this repository.
  2. Open your terminal in the project directory.
  3. Run the application:
    cargo run --release

📦 Building for Production

You can find automation scripts for different platforms in the scripts/ directory.

🍏 macOS (Bundle as .app)

To create a standalone macOS application that runs in the background, you can use the provided script:

./scripts/bundle_macos.sh

Manual Steps:

# 1. Build the release binary
cargo build --release

# 2. Setup the application structure
APP_NAME="ASMR"
DEST_APP="$HOME/Desktop/$APP_NAME.app"
rm -rf "$DEST_APP"

mkdir -p "$DEST_APP/Contents/MacOS"
mkdir -p "$DEST_APP/Contents/Resources"

# 3. Copy files (binary and assets)
cp "target/release/asmr" "$DEST_APP/Contents/MacOS/$APP_NAME"
cp -r "keyboard" "$DEST_APP/Contents/Resources/"
cp -r "mouse" "$DEST_APP/Contents/Resources/"

# 4. Create Info.plist (Configures the app to run as a background agent)
cat <<EOF > "$DEST_APP/Contents/Info.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>$APP_NAME</string>
    <key>CFBundleIdentifier</key>
    <string>com.kagesyntax.$APP_NAME</string>
    <key>CFBundleName</key>
    <string>$APP_NAME</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>LSUIElement</key>
    <true/>
</dict>
</plist>
EOF

# 5. Finalize permissions
chmod +x "$DEST_APP/Contents/MacOS/$APP_NAME"
xattr -cr "$DEST_APP"

echo "New ASMR.app created on Desktop. Move this to Applications and enjoy!"

🪟 Windows (Portable Bundle)

You can use the provided batch script:

.\scripts\bundle_windows.bat

Manual Steps (PowerShell):

# 1. Build binary
cargo build --release

# 2. Create Distribution Folder
mkdir "dist"
cp "target/release/asmr.exe" "dist/"
cp -r "keyboard" "dist/"
cp -r "mouse" "dist/"

# 3. Create a VBS script to run it silently in the background (optional)
echo 'Set WshShell = CreateObject("WScript.Shell")' > "dist/run_hidden.vbs"
echo 'WshShell.Run "asmr.exe", 0' >> "dist/run_hidden.vbs"

🐧 Linux (Portable Executable)

You can use the provided shell script:

./scripts/bundle_linux.sh

Manual Steps:

# 1. Build binary
cargo build --release

# 2. Create Distribution Folder
mkdir -p dist/resources
cp target/release/asmr dist/
cp -r keyboard dist/resources/
cp -r mouse dist/resources/

# 3. Run in background
nohup ./dist/asmr > /dev/null 2>&1 &

🛠 Project Structure

  • src/main.rs: Core logic for input listening and sound mixing.
  • keyboard/: Directory containing .wav samples for various keys.
  • mouse/: Directory containing .wav samples for mouse clicks.
  • Cargo.toml: Project dependencies and configuration.

⚙️ Configuration

The engine automatically maps sounds based on file names:

  • Files containing space -> Spacebar
  • Files containing enter or ent -> Enter key
  • Files containing back -> Backspace
  • Files containing left (in mouse dir) -> Left Click
  • Files containing right (in mouse dir) -> Right Click
  • All other files in keyboard/ are added to a randomized pool for general typing.

🤝 Contributing

Feel free to fork this project and add your own sound profiles! Simply swap out the .wav files in the keyboard/ and mouse/ directories.

📜 License

This project is licensed under the MIT License.

About

A cross-platform Rust application that transforms your typing into a satisfying mechanical keyboard ASMR experience.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors