Hi Nick,
just checking in about the issue below — not sure if you had the chance to look into it yet.

I kept digging and found a couple more details that might help:

 *

   It’s not actually sending *Shift*, but rather turning |CTRL + c|
   into |CTRL + C| (uppercase). I assume Guacamole is internally
   converting that into a Shift-modified combo.

 *

   The issue always starts if the RDP session is opened while Caps Lock
   is already ON on the client.

 *

   Toggling Caps Lock /inside/ the RDP session doesn’t fix anything.

 *

   But if I switch to another browser tab, toggle Caps Lock there, and
   then come back to the Guacamole tab, everything magically starts
   working again. So something about the browser tab focus seems to
   force a correct state sync.

Do you have any updates on this or any insight from your side?
Also — before I start experimenting randomly — do you know of any possible workaround I could try client-side or server-side to force Guacamole to resync the lock-key state on session start?

Thanks,
Steph

Il 18/11/25 12:43, steph01 ha scritto:

Hi Nick,

quick update on my issue.

After more tests, I found out the problem wasn’t specifically related to XRDP, but to *any RDP session started while **_Caps Lock_**is already enabled on the client machine*.

If I start the RDP session with Caps Lock ON, Guacamole ends up sending an extra Shift internally.
As a result:

 *

    |CTRL + C| becomes |CTRL + SHIFT + C|

 *

    |CTRL + S| becomes |CTRL + SHIFT + S|

 *

    and so on…

But if the RDP session is already running and I toggle Caps Lock /inside/ the session, then everything works perfectly. So the keyboard state only gets out of sync *at session start*.

I found this (old) issue that seems related: https://issues.apache.org/jira/browse/GUACAMOLE-518


Seems that guacamole doesn’t synchronize the initial state of lock keys (Caps/Num) when the session begins. If Caps Lock is active before connecting, the backend assumes it’s off and compensates by injecting Shift.


Any ideas for this?


Thanks in advance.

Steph.


Il 10/11/25 17:09, steph01 ha scritto:

Hi Nick,

I’m using *Guacamole 1.5.5*.

About contributing — yes, I’d like to! I’ve submitted a couple of small fixes in the past, nothing major yet. To clarify: I haven’t completely rewritten the frontend — I’m using the *Guacamole JavaScript libraries* and integrating them into an existing *React* project. Though, by now, I’ve gotten fairly familiar with how the client side of Guacamole works.
Unfortunately, I’m not really familiar with the ongoing Angular rewrite.

Thanks for mentioning the Ctrl–Alt–Shift case — in my setup those shortcuts aren’t used, so it’s probably something else.

Do you think there could be a workaround for this kind of stuck key state? I was thinking about something like *detaching and reattaching the keyboard session programmatically*, since reconnecting the whole session seems to reset everything correctly — though that feels a bit hacky.

Any ideas or safer approaches you’d suggest?

Thanks again!
— Steph


Il 10/11/25 15:55, Nick Couchman ha scritto:
On Mon, Nov 10, 2025 at 8:37 AM steph01 <[email protected]> wrote:

    **

    Hi everyone,

    I’m running both *guacamole-server* and *guacamole-client* on my
    own implementation of Guacamole — I’ve rewritten the frontend in
    *React*, following the logic and specs from the original Angular
    code.


What version of Guacamole have you based your React re-write on? (Also, have you considered contributing this code to the community? There's a rewrite in progress from AngularJS to Angular, but it's possible others would be interested in a React version of it...)

    I’m running into a strange issue that seems to happen *only on
    XRDP sessions to Linux machines* (I haven’t seen it on Windows).
    Basically, it looks like the *Shift key stays “stuck”* in the
    backend after some time.

    For example:

     *

        When I press *CTRL+C*, Guacamole sends *CTRL+SHIFT+C*
        instead (in NetBeans, this triggers “comment block” instead
        of copy).

     *

        *CTRL+S* becomes *CTRL+SHIFT+S* (“Save As”).

The only similar thing that I've seen, and I believe is limited to xrdp, is that, depending on the sequence in which I press the keys to activate the "hidden" Guacamole menu - Ctrl-Alt-Shift or Ctrl-Shift-Alt - one of the keys gets stuck. I don't think it's the Shift key, I think it's either Ctrl or Alt, but It sounds like it could be related to what you're seeing. Other than that, I'm not seeing the Shift key get stuck in the way you're reporting.

-Nick

Reply via email to