[ https://issues.apache.org/jira/browse/GUACAMOLE-925?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17835601#comment-17835601 ]
Nick Stepin edited comment on GUACAMOLE-925 at 4/10/24 5:50 AM: ---------------------------------------------------------------- Может кому интересно, но я решил эту проблему. Анализ проблемы показал, что когда мы указываем раскладку где есть таблица замен, то сервер при получении от клиента unicode нажатой клавиши, находит в этой таблице и подставляет скан-код. Если не находит, то отдает unicode. Соответственно, когда мы выбираем раскладку en_us_qwerty, то при нажатии на "." в любой раскладке будет подмена на скан-код клавиши "ю". Что приводит к эффекту, когда в en у нас ".", а в ru - вместо "." всегда "ю". Если же мы используем раскладку unicode (а у нее просто нет таблицы замен), то всегда передается unicode, но Windows не понимает сочетаний Ctrl+unicode. Второй момент связан с выбором раскладки для freerdp - в нашем случае там должен быть KBD_US, т.к. у нас идет переключение не раскладки, а языка. Основная идея решения состоит в следующем - надо сделать так, чтобы латинские буквы передавались скан-кодами (тогда работает сочетание с Ctrl), а русские и прочие знаки в Unicode. Соответственно таблица замен ru_ru_qwerty,keymap должна выглядеть по-другому ([^ru_ru_qwerty-1.keymap]) Мероприятия по интеграции раскладки в сервер и клиент не описываю, т.к. это описано другими. Нюанс. Чтобы всё работало как надо важно, чтобы выбор языка на хостовой и удаленной машине совпадали, иначе будете получать эффекты типа "вместо хъ - [], бю - ,." was (Author: JIRAUSER304876): Может кому интересно, но я решил эту проблему. Анализ проблемы показал, что когда мы указываем раскладку где есть таблица замен, то сервер при получении от клиента unicode нажатой клавиши, находит в этой таблице и подставляет скан-код. Если не находит, то отдает unicode. Соответственно, когда мы выбираем раскладку en_us_qwerty, то при нажатии на "." в любой раскладке будет подмена на скан-код клавиши "ю". Что приводит к эффекту, когда в en у нас ".", а в ru - вместо "." всегда "ю". Если же мы используем раскладку unicode (а у нее просто нет таблицы замен), то всегда передается unicode, но Windows не понимает сочетаний Ctrl+unicode. Второй момент связан с выбором раскладки для freerdp - в нашем случае там должен быть KBD_US, т.к. у нас идет переключение не раскладки, а языка. Основная идея решения состоит в следующем - надо сделать так, чтобы латинские буквы передавались скан-кодами (тогда работает сочетание с Ctrl), а русские и прочие знаки в Unicode. Соответственно таблица замен ru_ru_qwerty,keymap должна выглядеть по-другому ([^ru_ru_qwerty.keymap]) Мероприятия по интеграции раскладки в сервер и клиент не описываю, т.к. это описано другими. Нюанс. Чтобы всё работало как надо важно, чтобы выбор языка на хостовой и удаленной машине совпадали, иначе будете получать эффекты типа "вместо хъ - [], бю - ,." > 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-1.keymap, 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.20.10#820010)