Skip to content
AuroraZilingPublic

About

Simple cross-device input over Bluetooth.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

TapRelay logo

TapRelay

Control nearby devices from the keyboard and mouse already in your hands.

Latest release Windows x64 Rust nightly License: GPL-3.0-only

English · 简体中文

⭐ Features

  • 🎵 Bluetooth media controls
  • ⌨️ Custom shortcuts and receiver-key mappings
  • 🗂️ Application scopes that follow the foreground app
  • 🖱️ Full keyboard and mouse passthrough

📷 Screenshot

overview

🖥️ Requirements

  • Windows x64 (macOS is not supported yet)
  • A Bluetooth adapter and driver that support Bluetooth Low Energy (BLE) peripheral mode.
  • A receiver that accepts media controls over BLE HID.
  • For custom mappings and passthrough, the receiver must also support the corresponding Bluetooth HID keyboard or mouse input.

🚀 Download and use

Only a portable version is currently available.

  1. Download TapRelay_<version>_Windows_x64.zip from Releases and extract it to a writable folder.
  2. Run TapRelay.exe. TapRelay requests administrator access by default. If you cancel the request, it continues without elevation, but shortcuts may not work in applications running as administrator.
  3. In the setup wizard, enable the functions you need and assign shortcuts.
  4. Pair and connect the receiver to the PC in system Bluetooth settings, then select it in TapRelay.
  5. Start playback on the receiver and use Test Play/Pause.

⚙️ Settings and environment

  • The folder you extract TapRelay to must be writable because config.json and the logs/ folder are stored beside TapRelay.exe.
  • The default log level is info. To record more detail when troubleshooting, run TapRelay.exe --log-level debug. Available levels are off, error, warn, info, debug, and trace.
  • A device shown as paired or connected in system Bluetooth settings may not yet be able to receive TapRelay commands. If TapRelay reports that the session is not ready, connect to this PC from the receiver's Bluetooth settings, then check the status in TapRelay again.

⚠️ Limitations

  • With passthrough off, only the main key or mouse button of a matching shortcut is blocked; Shift, Ctrl, Alt and Win still reach the local application. For example, a Ctrl+P binding blocks P, not Ctrl. Alt or Win combinations may still open system menus or trigger other local system actions.
  • Test with your own receiver, Bluetooth adapter, driver and games to confirm compatibility.

🛠️ Build

To build on Windows x64, install:

  • rustup to install and manage Rust toolchains.
  • Visual Studio Build Tools with the Desktop development with C++ workload, including MSVC and a Windows SDK (providing rc.exe and fxc.exe).

From the repository root, install the nightly toolchain specified in rust-toolchain.toml and run the app:

rustup toolchain install
cargo run --locked -p taprelay-app

For full debug symbols, add --profile debugging to the run command.

Build the release executable with the same flags as the release workflow:

cargo rustc --release --locked -p taprelay-app -- -C target-feature=+crt-static

The output is target/release/taprelay.exe.

💬 Feedback and contributions

Submit bugs and feature requests to Issues.
Read the Contributing guide before submitting changes.
Follow the Code of conduct when participating in discussions.

💖 Acknowledgements

  • The Genshin Impact team and guide video creators: thank you for the work that inspired TapRelay.
  • My computer: thank you for providing a reliable Windows test environment.
  • Tibo: thank you to the Chief Reset Officer for supporting my Codex usage quota.
  • @DearVa

🚨 Compatibility

Works on My Machine

📄 License

TapRelay is licensed under GPL-3.0-only.

See THIRD_PARTY_NOTICES for copied source code, embedded icons and special attribution requirements.

About

Simple cross-device input over Bluetooth.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages