Where typing meets ASMR.
Keymulate is an innovative keyboard sound simulator that transforms your silent typing experience into a rich, auditory adventure. Whether you're nostalgic for the clicky sounds of mechanical keyboards or just want to add some fun to your typing, Keymulate has got you covered.
- Custom sound effects for each key press and release
- Support for multiple keyboard sound profiles (e.g., MX Brown, Blue switches)
- Low-latency audio playback for a responsive typing experience
- Cross-platform support (Linux fully supported, Windows support coming soon)
- Go 1.16 or later
- ALSA development libraries
On Ubuntu or Debian-based systems, you can install ALSA development libraries with:
sudo apt-get install libasound2-dev
-
Clone the repository:
git clone https://github.com/halfloafhq/keymulate.git cd keymulate
-
Build the project:
go build -o keymulate
-
Set file capabilities:
sudo setcap cap_dac_read_search+ep keymulate
./keymulate
You can choose the switch you want by passing in the name under the switch flag.
./keymulate --switch=mxbrown
Available switches:
- alpaca
- blackink
- bluealps
- boxnavy
- buckling
- cream
- holypanda
- mxblack
- mxblue
- mxbrown
- redink
- topre
- turquoise
Set up as systemd service (thanks to @ShashwatAgrawal20)
-
Go to user's systemd directory:
cd ~/.config/systemd/user/
-
Create keymulate.service:
touch keymulate.service
-
Describe the service:
[Unit] Description=Keymulate Service Requires=pipewire.service pipewire-pulse.service wireplumber.service After=pipewire.service pipewire-pulse.service wireplumber.service [Service] ExecStart=/path/to/keymulate/binary WorkingDirectory=/path/to/keymulate/directory Restart=on-failure [Install] WantedBy=default.target
Windows support is currently a work in progress. Stay tuned for updates!
We welcome contributions! Please feel free to submit a Pull Request.