Skip to content

Add mobile remote desktop sessions#18

Open
ZacharyZcR wants to merge 3 commits into
Termix-SSH:mainfrom
ZacharyZcR:feat/mobile-remote-desktop
Open

Add mobile remote desktop sessions#18
ZacharyZcR wants to merge 3 commits into
Termix-SSH:mainfrom
ZacharyZcR:feat/mobile-remote-desktop

Conversation

@ZacharyZcR
Copy link
Copy Markdown
Member

@ZacharyZcR ZacharyZcR commented May 13, 2026

Overview

Add mobile remote desktop sessions so RDP, VNC, and Telnet hosts can be launched from the mobile Hosts tab through the existing Guacamole backend.

  • Added: mobile Remote Desktop session backed by Guacamole WebSocket connections
  • Updated: Hosts list to include non-SSH remote desktop hosts
  • Updated: session handling to support remote desktop tabs
  • Added: touch mouse scaling and basic keyboard/special-key controls
  • Added: viewport resize forwarding and scrollable control bar for small screens

Changes Made

  • Reuse /guacamole/connect-host/{hostId} to generate a host-scoped Guacamole token.
  • Connect the mobile WebView client to /guacamole/websocket/ with viewport dimensions.
  • Add a RemoteDesktop session renderer with connection, disconnect, error, and reconnect states.
  • Route RDP/VNC/Telnet hosts to remote desktop sessions from the Hosts list and context menu.
  • Add mobile input controls for text entry, Esc, Tab, Enter, Backspace, arrow keys, and Ctrl+Alt+Del.
  • Correct touch coordinates when the Guacamole display is scaled to fit the phone screen.
  • Forward viewport resize events to Guacamole so rotation can update the remote display without reconnecting.
  • Keep the remote desktop toolbar horizontally scrollable to avoid cramped small-screen layouts.

Related Issues

Screenshots / Demos

Not included; this needs a configured Termix server with guacd and an RDP/VNC/Telnet host to verify interactively on device.

Validation run locally:

  • npx eslint app/tabs/sessions/remote-desktop/RemoteDesktop.tsx passes.
  • npx prettier --check app/tabs/sessions/remote-desktop/RemoteDesktop.tsx passes.
  • git diff --check passes.
  • npx eslint app/main-axios.ts app/contexts/TerminalSessionsContext.tsx app/tabs/hosts/Hosts.tsx app/tabs/hosts/navigation/Host.tsx app/tabs/sessions/Sessions.tsx app/tabs/sessions/navigation/TabBar.tsx app/tabs/sessions/remote-desktop/RemoteDesktop.tsx passes with existing warnings only.
  • npx tsc --noEmit still fails on existing repository-wide TypeScript errors outside this change.

Checklist

  • Code follows project style guidelines
  • Supports mobile and desktop UI/app (if applicable)
  • I have read Contributing.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] RDP support to mobile app

1 participant