Touchpad gestures
Move, tap, double-click, two-finger scroll, right-click, and click-and-drag from one large touch surface.
Project 01 · Initial release
Portway serves a touch controller straight from your computer. Open it in a phone browser, pair once, and control the host without a native app or a cloud relay.
No cloud hop. Phone and host talk directly on your network.
WHY / 02
Portway is a small server with a specific job. It serves its own controller, accepts authenticated input over WebSockets, and hands that input to Linux. Your phone needs only a modern browser.
HOW IT WORKS / 03
Portway defaults to port 2721 and serves everything the controller needs from the Linux host.
The service starts an HTTP(S) and WebSocket server beside the uinput backend.
portway serveVisit the host’s local address. There is no app package to install or update.
192.168.1.42:2721Exchange a short-lived six-digit code for a browser session, then use the touchpad or keyboard.
portway pairCONTROLS / 04
Reach for the phone already beside you: pause a video, move a window, enter a command, or navigate from across the room.
Move, tap, double-click, two-finger scroll, right-click, and click-and-drag from one large touch surface.
Send US-ASCII text, sticky modifiers, navigation keys, F1–F12, and common media controls.
Events go through Linux /dev/uinput, so the basic path is not tied directly to X11 or Wayland.
Disconnects, hidden pages, inactivity, and server shutdown all release held keys and mouse buttons.
INSTALL / 05
Portway uses the latest stable Rust toolchain. On a conventional systemd distribution, the installer creates an unprivileged service, configures access to /dev/uinput, and starts it at boot.
NixOS stays declarative; a flake package and NixOS module are included in the repository.
git clone https://github.com/heptanal/portway.git
cd portway
cargo build --release --locked
scripts/install-linuxSECURITY / 06
Portway requires authentication by default, but plain HTTP does not encrypt pairing codes or input.