[ 
https://issues.apache.org/jira/browse/GUACAMOLE-925?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17401405#comment-17401405
 ] 

Mike Jumper commented on GUACAMOLE-925:
---------------------------------------

{quote}
Since all systems are now Unicode-compatible, I think there's no need to add 
more layouts explicitly. Just [Ctrl]-sequences should be fixed for 
Unicode-layout. 
{quote}

This is not possible - it's just not how Unicode events work within Windows. 
The reason that pure Unicode events cannot be used with Ctrl for keyboard 
shortcuts is that Windows simply does not process keyboard shortcuts from 
Unicode events. It cannot work that way. There is no way for it to work.

Keyboard shortcuts can only with traditional key events, which requires that 
the configured keyboard layout (within the Guacamole connection) matches the 
keyboard layout configured within the RDP session. This should happen 
automatically if the keyboard layout selected within Guacamole is supported by 
the installation of Windows. That said, if a user later changes the keyboard 
layout within the session, the identities of remote keys will suddenly not 
match up with what Guacamole has been configured to expect, and the wrong 
events will be sent.

>From the relevant section of the FAQ 
>([https://guacamole.apache.org/faq/#does-guacamole-support-my-keyboard-layout]),
> the absolute ultimate solution to providing perfect key events is to 
>specifically support the keyboard layout in question, _but this is not usually 
>necessary_. As long as _any_ supported keyboard layout is selected, the keys 
>within that keyboard layout will be usable with keyboard shortcuts involving 
>Ctrl, etc., and Unicode will be used automatically and only for keys that are 
>absent from that keyboard layout.

>From the above:

"... **This does not mean that your RDP server must have the same keyboard 
layout as the client machine.** It only means that Guacamole must have a 
keyboard layout definition for the layout used by the RDP server. If a user 
attempts to use a keyboard with a different layout, Guacamole will translate 
pressed keys as necessary to match the layout of the RDP server. If the user 
attempts to press keys which are not present in the keyboard layout of the RDP 
server, Guacamole will send those keys in the form of Unicode events. ..."

For example, if you are using a Russian keyboard locally and have configured 
Guacamole and Windows to us a US English layout, the following would happen for 
various key combinations:


||Local Keys||Remote Events||
| Ctrl+C | Traditional key press and release events for "Ctrl" and "C" |
| ю | Unicode event "ю" |

The only Ctrl shortcuts that would not work in this sort of configuration would 
be things like "Ctrl+ю".

{quote}
I recently upgraded version from 1.0 to 1.3 and the problem remains exactly as 
it was
{quote}

Specific support for Russian keyboard layout has not been implemented, hence 
this JIRA issue for adding that layout. You won't find it in any past release 
nor in current git. If this issue is closed as completed, you build the version 
noted in "Fix Version" or from git,  and you don't see support for Russian 
layouts, _then_ something is wrong.

To all happening across this JIRA issue because they are looking to use a 
Russian keyboard, things really should already work:

# Don't modify the source (unless you are intending to test the contributed 
keyboard layout)
# Configure your Guacamole connection to use a supported keyboard layout like 
US English (the default). **The layout does not need to match your local users' 
layouts.** It only needs to match the layout of the RDP server, and that much 
should happen automatically as long as the layout is supported by the server 
(which it should be).
# Type whatever you wish. Ctrl shortcuts that use keys defined on the US 
English keyboard will use traditional keyboard events and work as expected. 
Typing Russian/Cyrillic characters will leverage Unicode events and work as 
expected.

If there is something specific to the Russian layout that means the above 
actually cannot work for users leveraging Russian keyboards locally, please let 
us know.

> Add Russian keyboard support for RDP
> ------------------------------------
>
>                 Key: GUACAMOLE-925
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-925
>             Project: Guacamole
>          Issue Type: Improvement
>          Components: RDP
>    Affects Versions: 1.0.0
>            Reporter: Roman Adyev
>            Priority: Minor
>         Attachments: SCREEN.jpg, apache_guacamole_Russian_layouts.txt, 
> image-2021-01-04-14-42-50-393.png, ru_ru_qwerty.keymap
>
>
> Hello, dear support team!
> I'm using Unicode layout because Russian layout isn't presented there, but 
> with Unicode layout I can't send keyboard shortcuts to remote RDP machine 
> (CTRL + C for example).
> If I switch Unicode to English layout in connection settings, I can do 
> keyboard shortcuts but unfortunately some signs doesn't match when I use RU 
> layout, for example instead of period sign I got Russian letter "ю". 
> The keyboard layouts on remote and local machine are identical, that's 100%, 
> tested many times on different clean windows 10 installs, on work, on VMs, on 
> friend's PCs, etc. The issue always the same.
> As I can see Russian layout isn't presented in Guacamole connection settings 
> by itself so it would be highly appreciated if you can suggest any workaround 
> for Russian users.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to