[
https://issues.apache.org/jira/browse/GUACAMOLE-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17089055#comment-17089055
]
Weston Thayer commented on GUACAMOLE-1037:
------------------------------------------
I was able to test on 1.2.0. This issue is unrelated to the Italian keyboard
layout. [I was
incorrect|https://issues.apache.org/jira/browse/GUACAMOLE-859?focusedCommentId=17083564&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17083564]
when I said the fix for GUACAMOLE-859 was already present in guacd 1.1.0.
After downloading the source TAR from the [releases
page|https://guacamole.apache.org/releases/1.1.0/], I'm not seeing the change
to {{base.keymap}}. But it's definitely in the {{staging/1.2.0}} branch.
When testing an RDP connection from my Windows laptop (en-us) to a Windows vm
(also en-us), the effect is that caps lock appears to be totally broken in
1.2.0.
But what's actually happening is the {{CAPS_LOCK}} key press is correctly being
sent to the remote machine, so caps lock is {{ON}}. You can confirm this by
opening the on screen keyboard on the remote machine and hitting the {{A}} key
— an uppercase "A" is correctly typed.
When you trying to hit the {{A}} key on your client's keyboard, guacamole
({{guacamole-client}}, not {{guacd}}) is first sending the left {{SHIFT}}
keydown, then {{A}} keydown. Since the remote computer has caps lock on,
simulating {{SHIFT}} before letting {{A}} keydown go through causes a lowercase
"a" to be typed. The {{SHIFT}} behavior is in guacd, see [this
line|https://github.com/apache/guacamole-server/blob/staging/1.2.0/src/protocols/rdp/keymaps/en_us_qwerty.keymap#L30].
So in short, the title of this bug is correct. Caps lock appears to be broken
in 1.2.0, just over RDP connections (since those are the only connections where
the {{keymap}} files are used).
> Caps Lock doesn't work via RDP (1.2 guacd)
> ------------------------------------------
>
> Key: GUACAMOLE-1037
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-1037
> Project: Guacamole
> Issue Type: Bug
> Components: guacd
> Affects Versions: 1.2.0
> Reporter: andrea lattanzi
> Priority: Minor
>
> Hello!
> I was pushed to use guacd 1.2 after facing 1.1 huge memory leaks bug.
> The users signalled me this bug that could be workaround by running OSK on
> the remote.
> To log key events I used this site:
> [https://unixpapa.com/js/testkey.html]
> Now I'm pasting the results in several conditions of the following test
> sequence:
> 1) "a" key low case
> 2) caps lock
> 3) "A" key
> 4) caps lock
> 5) "a" key
> The client OS is Ubuntu, but OS and browser/version combinations don't look
> to affect the bug.
>
> *Just the client via Chromium:*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=65 (A) which=65 (A) charCode=65 (A)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
>
> *client via Chromium, guacamole 0.9.14 RDP*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=255 which=255 charCode=0
> keyup keyCode=255 which=255 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=65 (A) which=65 (A) charCode=65 (A)
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=255 which=255 charCode=0
> keyup keyCode=255 which=255 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
>
> *client via Chromium, guacamole 1.1, guacd 1.2, RDP (bug)*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=16 which=16 charCode=0
>
> *client via Chromium, guacamole 1.0, RDP*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=0 which=0 charCode=0
> keyup keyCode=0 which=0 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=65 (A) which=65 (A) charCode=65 (A)
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=0 which=0 charCode=0
> keyup keyCode=0 which=0 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=16 which=16 charCode=0
>
> *client via Chromium, guacamole 1.1, guacd 1.2, VNC*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=65 (A) which=65 (A) charCode=65 (A)
> textInput data=A
> Akeyup keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
>
> *client via Firefox, guacamole 0.9.14 RDP*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=255 which=255 charCode=0
> keyup keyCode=255 which=255 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=65 (A) which=65 (A) charCode=65 (A)
> textInput data=A
> Akeyup keyCode=16 which=16 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=255 which=255 charCode=0
> keyup keyCode=255 which=255 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
>
> *client via Firefox, guacamole 1.1, guacd 1.2, RDP (bug)*
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=16 which=16 charCode=0
> keydown keyCode=16 which=16 charCode=0
> keyup keyCode=65 (A) which=65 (A) charCode=0
> keyup keyCode=16 which=16 charCode=0
> keydown keyCode=20 which=20 charCode=0
> keyup keyCode=20 which=20 charCode=0
> keydown keyCode=65 (A) which=65 (A) charCode=0
> keypress keyCode=97 (a) which=97 (a) charCode=97 (a)
> textInput data=a
> akeyup keyCode=65 (A) which=65 (A) charCode=0
>
> I hope this could help.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)