Skip to content
Rituraj edited this page Feb 5, 2026 · 11 revisions

Demo

Comp_rein_prototypedemo.mp4

Current prototype is implementation of the core (partial) specification.

  1. 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.


2. Core Input Functionality (Priority)

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.


3. Settings Interface (/settings)

3.1 Settings Page

  • Browser-accessible /settings route.

  • Displays:

    • Editable IP address.
    • Editable port.
  • Toggles: [New]

    • Inverse scroll
  • Default values shown on first launch.

  • User can modify and save values.


3.2 Connection Access Information

  • Displays:

    • Clickable link: <LAN_IP>:<PORT>/trackpad
    • QR code encoding the same URL.
  • On save:

    • The link is regenerated and redirected.
    • The QR code is regenerated.

4. Trackpad Page Layout (/trackpad)

Layout order (top → bottom):

  1. Navigation bar (Trackpad / Settings)
  2. Trackpad area
  3. Control keys + extra keys
  4. Keyboard

5. Trackpad Area

  • Cursor Mode:

    • Acts as a standard trackpad.
  • Scroll Mode:

    • One-finger scrolling in any direction.

6. Control Keys Section

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


7. Extra Keys Section

  • 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

8. Keyboard Input

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

9. PWA Support

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.

10. Packaging & Distribution

10.1 Desktop Packaging (Optional Paths)

  • The application may be packaged using:
    • Tauri, if achievable without deep Rust knowledge.
    • Otherwise, Electron.

10.2 Platform Distribution

  • Linux:

    • Distributed only as Flatpak.
  • Other desktop platforms:

    • Distributed as standalone executables.

11. Future Expansion

11.1 Gamepad

  • Remote gamepad support.
  • Multiple simultaneous connections.

11.2 OCR

  • Handwritten input recognition.