[ 
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)

Reply via email to