-
Notifications
You must be signed in to change notification settings - Fork 24
Home
Comp_rein_prototypedemo.mp4
Current prototype is implementation of the core (partial) specification.
- Scope
-
This is a cross-platform remote control application, implemented using TypeScript.
-
Preferably, a single port is responsible for:
- Serving the frontend.
- Receiving and injecting remote input events.
-
Intended for LAN usage only.
-
Avoids system-level dependencies when possible.
These must be implemented and verified before UI polish or configuration UX.
-
Remote cursor movement.
-
Remote mouse clicks:
- Left click
- Right click
-
Remote scrolling.
-
Remote keyboard input using the client device’s system keyboard.
-
Browser-accessible
/settingsroute. -
Displays:
- Editable IP address.
- Editable port.
-
Toggles: [New]
- Inverse scroll
-
Default values shown on first launch.
-
User can modify and save values.
-
Displays:
- Clickable link:
<LAN_IP>:<PORT>/trackpad - QR code encoding the same URL.
- Clickable link:
-
On save:
- The link is regenerated and redirected.
- The QR code is regenerated.
Layout order (top → bottom):
- Navigation bar (Trackpad / Settings)
- Trackpad area
- Control keys + extra keys
- Keyboard
-
Cursor Mode:
- Acts as a standard trackpad.
-
Scroll Mode:
- One-finger scrolling in any direction.
-
Modifier control:
Intended for key combinations (e.g. Ctrl, Shift, Ctrl+Shift+V).
- Buffer to capture keys, value of buffer will be always visible in the trackpad region, and the trackpad behaviour wont be affected.
- States:
- Hold
- All keys pressed after will be captured in buffer not sent
- All keys captured will be displayed in the trackpad area
- Press
- Press and hold all captured keys
- Release
- Reset state and buffer
-
Copy
-
Paste
-
Mode toggle (Cursor / Scroll)
-
Right click
-
keyboard toggle [New]
- Keys commonly missing from mobile keyboards.
- Includes (but is not limited to):
- Delete
- Windows / Meta
- Ctrl
- Shift
- Alt
- Tab
- Fn (12)
- Media keys
- Arrow keys
- print screen
- Uses the client device’s system keyboard.
- No custom keyboard UI is implemented.
- Keyboard input is sent directly to the server.
- If viable keyboard should be always visible.
Helpful only if a stable local address can be provided for the server.
- The web application is installable as a PWA.
- Once installed, the user should not need to:
- Re-scan a QR code.
- Manually revisit the URL for regular use.
- The application may be packaged using:
- Tauri, if achievable without deep Rust knowledge.
- Otherwise, Electron.
-
Linux:
- Distributed only as Flatpak.
-
Other desktop platforms:
- Distributed as standalone executables.
- Remote gamepad support.
- Multiple simultaneous connections.
- Handwritten input recognition.