Turn any device with a web browser into a wireless touchpad and keyboard for your computer.
This application runs a lightweight web server on your host machine. Connecting to it from another device on the same network (like a phone or tablet) presents a web interface that functions as a remote touchpad.
- Remote Mouse Control: Smooth mouse movement simulation.
- Click Support: Left and Right mouse clicks.
- Two-Finger Scrolling: Natural vertical scrolling.
- Basic Keyboard Input: Send keystrokes from the web interface.
- Adjustable Sensitivity & Acceleration: Fine-tune pointer speed, acceleration curves, precision mode, inertia, and edge damping via constants in the source code (
src/main.rs
) for a personalized feel. - Cross-Platform: Runs on Windows, macOS, and Linux (wherever Rust and
enigo
are supported). - Zero Client Installation: Only requires a modern web browser on the remote device.
- Rust: Install Rust and Cargo (The Rust toolchain) from https://rustup.rs/.
- Clone the repository:
git clone https://github.com/ycn/web_touchpad.git cd web_touchpad
- Build the release executable:
The executable will be located at
cargo build --release
target/release/web_touchpad
(ortarget\release\web_touchpad.exe
on Windows).
-
Copy Static Files: Ensure the
public
directory (containingindex.html
, CSS, and JS files) is placed in the same directory as the compiled executable (web_touchpad
orweb_touchpad.exe
). -
Run the Executable:
- On Linux/macOS:
./target/release/web_touchpad
- On Windows:
.\target\release\web_touchpad.exe
The server will start and listen on
0.0.0.0:8088
by default. - On Linux/macOS:
- Find the local IP address of the computer running the
web_touchpad
server.- macOS:
ipconfig getifaddr en0
(oren1
for Wi-Fi) in the terminal. - Linux:
ip addr show
in the terminal. - Windows:
ipconfig
in Command Prompt.
- macOS:
- On your remote device (phone, tablet, another computer), open a web browser.
- Navigate to
http://<SERVER_IP_ADDRESS>:8088
(replace<SERVER_IP_ADDRESS>
with the actual IP address you found). - The web touchpad interface should load. Use it to control the mouse and keyboard of the server computer.
Pointer behavior (acceleration, precision, inertia, scrolling) can be fine-tuned by modifying the const
values within the process_mouse_events
function in src/main.rs
. Recompile the application after making changes.
Contributions are welcome! Please feel free to submit pull requests or open issues.
This project is licensed under the MIT License - see the LICENSE file for details.