Commit Graph

12 Commits

Author SHA1 Message Date
Z User
7b758ebe01 Add standalone RustDesk web client (reverse-engineered)
Complete browser-based remote desktop client built from protocol analysis:
- Protobuf message definitions (75+ message types, 10 enums)
- NaCl encryption (Ed25519 + Curve25519 ECDH + XSalsa20-Poly1305)
- WebSocket signaling (hbbs) + relay (hbbr) connection lifecycle
- VP8/VP9/AV1 video decoding via ogvjs WASM + yuv-canvas WebGL
- Opus audio decoding via libopus WASM + Web Audio API
- Full mouse/keyboard input forwarding to protobuf events
- Connection dialog, status bar, toolbar, log panel UI

Also tracked web_deps (codec libraries) in rustdesk-as-ref/
2026-04-06 21:11:21 +00:00
04d0eac748 move dep 2026-04-06 12:58:23 -07:00
6218245549 add web deps 2026-04-06 12:54:40 -07:00
Z User
3f0893cdf7 refactor: switch from sidecar IPC to webview-based RustDesk integration
Previous approach used Tauri sidecar binary with IPC commands. New approach
uses the RustDesk web architecture correctly:

- RustDesk server runs as native binary in --server mode (ports 21115-21119)
- RustDesk web client (Flutter web build) loaded in a Tauri webview window
- Web client communicates with server via WebSocket (21118/21119)

Backend changes:
- main.rs: Simplified IPC - start/stop server + open webview window
- Removed tokio dependency (no longer needed)
- Removed sidecar bundle config from tauri.conf.json

Frontend changes:
- RemoteDesktop.js: Toggle server on/off, launch web client webview
- New UI with server control section + web client launcher
- Updated CSS for the new layout
- Updated HTML with server URL input and launch button

Documentation:
- Updated binaries/README.md with full build pipeline:
  1. Build RustDesk native binary
  2. Build Flutter web client
  3. WASM bridge dependency note
  4. Server ports reference
2026-04-06 19:35:50 +00:00
Z User
f88e2c8fb4 feat: integrate RustDesk remote desktop into Shelled OS
- Add hbb_common as git submodule (was missing)
- Add Tauri sidecar configuration for RustDesk binary
- Implement Rust backend IPC commands:
  - start_rustdesk: Launch RustDesk sidecar process
  - stop_rustdesk: Kill running RustDesk process
  - get_rustdesk_status: Check if RustDesk is running
  - connect_to_peer: Connect to a remote peer by ID
- Create RemoteDesktop JS component with:
  - Peer ID input and connect/disconnect buttons
  - Real-time status indicator (disconnected/connecting/connected/error)
  - Recent connections list with quick reconnect
  - Tauri event listener for backend status updates
- Add Remote Desktop taskbar button (remote_login icon)
- Add full CSS styling with glassmorphism design
- Create binaries/ directory with build instructions
- Update capabilities with shell:allow-spawn permission
- Add tokio dependency for async runtime
2026-04-06 19:16:19 +00:00
e0b6c5d245 add ref tmp 2026-04-06 12:04:19 -07:00
Z User
d9622d07a8 fix: generate proper BMP-based ICO for Windows RC compiler
RC.EXE doesn't accept PNG-in-ICO format. Created a valid ICO with
multiple sizes (16, 32, 48, 256) using proper BMP DIB format.
2026-04-06 18:32:07 +00:00
Z User
a56a4f230f fix: replace invalid .ico with proper ICO format file
The previous icon.ico was a renamed PNG which caused RC2175 error
on Windows. Generated a valid ICO file with proper header structure.
2026-04-06 18:24:24 +00:00
Z User
c08b4a9863 fix: resolve Tauri 2.0 build issues
- Add missing build.rs (required by tauri_build crate)
- Add capabilities/default.json (Tauri 2 mandatory permissions system)
- Add default app icons (32x32, 128x128, 128x128@2x, ico, png)
- Upgrade from pre-release 2.0.0-rc to stable Tauri 2.x
- Fix tauri.conf.json: use frontendDist instead of deprecated devPath/distDir
- Add tauri script to package.json
2026-04-06 18:06:04 +00:00
701c6be0d3 add shelled-ui 2026-04-06 10:45:18 -07:00
c161af5f04 move files 2026-04-05 17:30:07 -07:00
9ddfcd647b Initial commit 2026-03-29 13:13:48 -07:00