[
https://issues.apache.org/jira/browse/GUACAMOLE-925?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17401405#comment-17401405
]
Mike Jumper edited comment on GUACAMOLE-925 at 8/18/21, 11:35 PM:
------------------------------------------------------------------
{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.
was (Author: mike.jumper):
{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)