[
https://issues.apache.org/jira/browse/GUACAMOLE-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16354918#comment-16354918
]
Michael Jumper commented on GUACAMOLE-469:
------------------------------------------
To clarify on how things work here, the fact that Shift is sent when the key is
capitalized due to Caps Lock is not in itself a bug; it is desired behavior. If
the keyboard layout you wish to use differs in behavior with Shift vs. Caps
Lock, the issue is not that Guacamole is handling these keys incorrectly, but
rather than Guacamole needs that keyboard layout to be defined so that key
translation works correctly.
[The translation I mentioned
earlier|https://issues.apache.org/jira/browse/GUACAMOLE-469?focusedCommentId=16307519&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16307519]
involves Guacamole taking the identity of the key that you pressed locally,
and pressing the necessary keys remotely to achieve the same behavior. These
keys will not necessarily match. If the remote keyboard layout is correctly
defined, Guacamole will press the correct keys.
Consider, for example, typing "\@" on a US English keyboard vs. a German
keyboard. For simplicity's sake, let's say the local keyboard is US English and
the remote keyboard is German (and the RDP connection is configured with this
fact). To type "\@" on their US English keyboard, the user presses Shift+2. As
a result, Guacamole sends the following key events:
# Shift pressed
# "\@" pressed
# "\@" released
# Shift released
but on a German keyboard, typing "\@" requires pressing AltGr+Q (no shift).
Guacamole's RDP support knows this and dynamically translates the keystrokes
once it realizes what's being typed. This results in the following events being
sent:
# Shift pressed
# Shift released (because Guacamole knows this modifier is not involved in
typing "\@" on the keyboard used within the RDP session)
# AltGr pressed (because Guacamole knows this modifier is required)
# Q pressed (to achieve "\@")
# Q released
# AltGr released
# Shift pressed (restoring the original modifier state)
# Shift released (the user has now physically released shift)
To get completely equivalent key events, or to work correctly with RDP servers
that do not support Unicode events (XRDP, some virtualization software),
Guacamole needs a correct keyboard layout definition. Otherwise, as long as the
RDP connection within Guacamole has been configured with the keyboard layout
*of the RDP server*, all keys will work correctly, even if the remote keyboard
layout does not match the local layout. This is because any key events which
cannot be natively supported by the remote keyboard will be translated into
Unicode events, and the characters will still be successfully typed.
> Sending extra shift key to rdp connections
> ------------------------------------------
>
> Key: GUACAMOLE-469
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-469
> Project: Guacamole
> Issue Type: Bug
> Components: RDP
> Affects Versions: 0.9.12-incubating
> Reporter: Abolfazl Kazemi
> Priority: Minor
>
> If you turn on Caps-Lock and open on-screen keyboard you see that as you
> type, some extra shift is also pressed (without you manually press it)
> This behavior causes problems in a lot of cases for example when typing none
> English characters.
> There are also some problems with sending CTRL key for example in bash
> scripts.
> Thanks.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)