Skip to content

Fix RDP audio output and dynamic session resize#625

Open
allxm4 wants to merge 1 commit intoTermix-SSH:mainfrom
allxm4:feature/rdp-audio-and-resize
Open

Fix RDP audio output and dynamic session resize#625
allxm4 wants to merge 1 commit intoTermix-SSH:mainfrom
allxm4:feature/rdp-audio-and-resize

Conversation

@allxm4
Copy link

@allxm4 allxm4 commented Mar 15, 2026

Overview

Fixes two issues with RDP connections: no audio output and static session resolution that only CSS-scales instead of actually resizing.

  • Fixed: RDP audio output not working
  • Fixed: RDP session not resizing when the browser window is resized

Changes Made

Audio fix (guacamole-server.ts)
The custom connectionDefaultSettings for RDP silently wipes guacamole-lite's built-in audio: ['audio/L16'] default. Without it, guacd is told no audio formats are supported and skips the audio channel entirely. Adding audio: ["audio/L16"] back restores it.

Audio fix (GuacamoleDisplay.tsx)
client.onaudio was never handled, so incoming audio streams were silently dropped. Added a handler that passes streams to Guacamole.AudioPlayer.getInstance() for playback via the Web Audio API.

Resize fix (GuacamoleDisplay.tsx)
The existing ResizeObserver only called display.scale() — a CSS zoom that keeps the RDP session at its original resolution. Added a debounced client.sendSize(w, h) call so the RDP server is told to actually redraw at the new resolution. The backend already had "resize-method": "display-update" configured, so only the client-side signal was missing.

Type definitions (guacamole-common-js.d.ts)
Added missing sendSize, onaudio, and AudioPlayer to the type definitions.

Related Issues

None

Checklist

  • Code follows project style guidelines
  • Supports mobile and desktop UI/app (if applicable)
  • I have read Contributing.md
  • This is not a translation request

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.

1 participant