Skip to content

halfloafhq/keymulate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keymulate

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.

Features

  • 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)

Building and Running on Linux

Prerequisites

  • 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

Building

  1. Clone the repository:

    git clone https://github.com/halfloafhq/keymulate.git
    cd keymulate
  2. Build the project:

    go build -o keymulate
  3. Set file capabilities:

    sudo setcap cap_dac_read_search+ep keymulate

Running

./keymulate

Choose your switch

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)

  1. Go to user's systemd directory:

    cd ~/.config/systemd/user/
  2. Create keymulate.service:

    touch keymulate.service
  3. 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

Windows support is currently a work in progress. Stay tuned for updates!

Contributing

We welcome contributions! Please feel free to submit a Pull Request.

Releases

No releases published

Packages

No packages published

Languages