[
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/15/24 3:26 PM:
----------------------------------------------------------------
Может кому интересно, но я решил эту проблему.
Анализ проблемы показал, что когда мы указываем раскладку где есть таблица
замен, то сервер при получении от клиента unicode нажатой клавиши, находит в
этой таблице и подставляет скан-код. Если не находит, то отдает unicode.
Соответственно, когда мы выбираем раскладку en_us_qwerty, то при нажатии на "."
в любой раскладке будет подмена на скан-код клавиши "ю". Что приводит к
эффекту, когда в en у нас ".", а в ru - вместо "." всегда "ю".
Если же мы используем раскладку unicode (а у нее просто нет таблицы замен), то
всегда передается unicode, но Windows не понимает сочетаний Ctrl+unicode.
Второй момент связан с выбором раскладки для freerdp - в нашем случае там
должен быть KBD_US, т.к. у нас идет переключение не раскладки, а языка.
Основная идея решения состоит в следующем - надо сделать так, чтобы латинские
буквы передавались скан-кодами (тогда работает сочетание с Ctrl), а русские и
прочие знаки в Unicode.
Соответственно таблица замен ru_ru_qwerty,keymap должна выглядеть по-другому
([^ru_ru_qwerty-2.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-1.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-2.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)