Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[BUG] RDP: scrollbar appears near right/bottom edge and the remote screen jitters (display container overflow-auto)

Closed Beginner friendly
#1,370 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
docker, javascript
Domain
frontend

Research direction

Start with the GuacamoleDisplay-*.js built asset and reproduce the issue in an RDP session using the supplied DevTools overflow query. Check the display container sizing and overflow behavior; done means the right and bottom edge no longer show scrollbars or trigger display jitter during automatic-resolution sessions.

Written by the indexing model from the issue text.

Description

bug good-first-issue platform-docker platform-web rdp-vnc
Title

RDP: scrollbar appears near right/bottom edge and the remote screen jitters (display container overflow-auto)

Platform

Website - Chrome

Server Installation Method

Docker

Version

2.8.0

CLI Installation Method

N/A

CLI Version

No response

Troubleshooting
  • I have examined logs and tried to find the issue
  • I have reviewed opened and closed issues
  • I have tried restarting the application
  • I have checked open issues and ensured this is not a duplicate
The Problem

In RDP sessions (also reproduced with a Windows RDP host), once the session has focus, moving the mouse within ~1 cm of the right or bottom edge of the remote display makes a scrollbar appear, and the whole remote screen starts jittering (shrinking/growing in a loop). It is practically impossible to click window close buttons or a bottom taskbar/dock. Top and left edges are fine.

With a fixed resolution set in the connection, the remote image stops jittering, but the same scrollbars still pop up in the empty area around it when approaching the edge of the Termix viewport.

Environment: Termix 2.8.0 in Docker (ghcr.io/lukegus/termix:2.8.0), guacd guacamole/guacd:1.6.0, web UI at 100% zoom, devicePixelRatio = 1. RDP targets: xrdp 0.10 on Debian 13 (XFCE) and a Windows VM.

Diagnosis

Listing scrollable elements whose content overflows them (run in DevTools while the RDP tab is open):

[...document.querySelectorAll('*')].filter(e=>{const s=getComputedStyle(e);return /(auto|scroll)/.test(s.overflowX+s.overflowY)&&(e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight)}).map(e=>({cls:e.className,dx:e.scrollWidth-e.clientWidth,dy:e.scrollHeight-e.clientHeight}))

returns the display container of GuacamoleDisplay:

{ cls: "absolute inset-0 overflow-auto", dx: 17, dy: 0 }

The scaled Guacamole display ends up a few pixels larger than its container, so the overflow-auto container gets a scrollbar near the edge. The scrollbar reduces the container size, the ResizeObserver refits/rescales the display, the overflow disappears, the scrollbar goes away, and the cycle repeats — this is the jitter.

Workaround / suggested fix

Changing the container class from overflow-auto to overflow-hidden fixes it completely (patched in the built asset GuacamoleDisplay-*.js):

- className: "absolute inset-0 overflow-auto"
+ className: "absolute inset-0 overflow-hidden"

Since the display is always scaled to fit, scrolling this container doesn't seem to be needed. Alternatively, rounding the computed display size down (Math.floor) when setting the scaled width/height might also avoid the overflow.

How to Reproduce
  1. Open an RDP connection in the Termix web UI (automatic resolution).
  2. Click inside the remote display to focus it.
  3. Move the mouse slowly towards the right edge (or towards a taskbar/dock at the bottom edge).
  4. Within ~1 cm of the edge a scrollbar appears and the display starts resizing back and forth.
Additional Context

Originally filed by mistake in the main repo as Termix-SSH/Termix#1525.

Dominant language
No language data
Stars
30
Forks
4
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Termix-SSH/Support

All issues in Termix-SSH/Support

Similar issues

More Web Dev issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.