Bug 33286 - Не переключается раскладка в сессии
Summary: Не переключается раскладка в сессии
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: xrdp (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-27 12:27 MSK by Andrey Prokopyev
Modified: 2019-05-30 17:24 MSK (History)
9 users (show)

See Also:


Attachments
В тестовой сборке 181227 переключение раскладок работает! (324.27 KB, image/png)
2017-04-16 21:17 MSK, Pavel Isopenko
no flags Details
Правка xrdp_keyboard.ini, включающая поддержку кириллицы (208 bytes, patch)
2017-05-17 17:10 MSK, Pavel Isopenko
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Prokopyev 2017-03-27 12:27:11 MSK
поставил alt-server 8, обновил до сизифа, установил xrdp
попробовал 
rdesktop localhost - все подключилось, но переключить режим ввода не получилось никаким способом.
Вернее переключается с помощью мыши, но результат ввода с клавиатуры - русский.
переключить получилось: 
rdesktop -k en-us localhost
но тогда нет русского
Comment 1 Andrey Prokopyev 2017-03-28 12:50:58 MSK
Может собрать новую версию - на сайте уже 0.91
Comment 2 Andrey Cherepanov 2017-03-28 13:09:34 MSK
(В ответ на комментарий №1)
> Может собрать новую версию - на сайте уже 0.91
Собрать не проблема - давно у меня в git есть. но проблема в том, что с наложением патчей и конфигурации Fedora оно стало нерабочим из коробки.
Comment 3 Michael Shigorin 2017-03-30 14:29:59 MSK
А в нашем rdesktop ещё есть патч sr@ для -y (raw input)?

https://lists.altlinux.org/pipermail/community/2009-August/654203.html
Comment 4 Pavel Isopenko 2017-04-10 07:19:36 MSK
В 181227 TESTED #4 [test-only] sisyphus xrdp.git=0.9.2-alt1 del=librfxcodec
примерно та же история. Только переключать мышью тоже не получается - переключателя на панели нет. Зато 
setxkbmap -option 'grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:menu' -layout 'us,ru'
в консоли клиентской сессии включает смену раскладок, в данном случае по Alt+Shift.
Источник: https://toster.ru/q/269723
Comment 5 Pavel Isopenko 2017-04-16 21:17:18 MSK
Created attachment 7059 [details]
В тестовой сборке 181227 переключение раскладок работает!

Переделал опыт и обнаружил, что переключение раскладок для установки из тестового задания 181227 всё-таки работает. Установка Альт Рабочая станция 8, обновить до Сизифа. Переключение раскладок не работает, если попытаться зайти по RDP пользователем, у которого уже открыт локальный сеанс. Но если только по RDP - работает. Не считаю что это проблема, скорее просто особенность.
Comment 6 Pavel Isopenko 2017-05-03 17:44:36 MSK
По поводу
apt-repo test 182416 xrdp xorg-drv-xrdp
можно добавить следующее:
- в принципе, работает. Пробовалась Рабочая станция 8, установленная по умолчанию.
# chkconfig xrdp on
# service xrdp start
И можно подключаться по ip хоста. При первом подключении пользователя все апплеты области уведомления запускаются, переключение раскладок работает нормально. Проблема проявляется при втором и последующем подключениях - не подключается именно переключение раскладок.
Обход:
# setxkbmap -option 'grp:alt_shift_toggle' -layout 'us,ru'
из запущеной клиентской сессии.
Апплет не подключается, но хотя бы начинает работать переключение раскладок по Alt+Shift.
Замечено, что обход по Alt+Shift не работает из-под Windows 10, хотя работает с Windows 7, Windows 2003 Server, то есть более ранних систем. Предположительно, Windows 10 как-то перехватывает и пытается по-своему обрабатывать.
Проблему с областью уведомления можно получить и проще: перезагрузиться с xrdp, настроенным на автозапуск. Зайти пользователем, и обнаружить пустую область уведомления. Хотя переключение раскладок по Ctrl+Shift до первого выхода ещё работает. Именно так: апплеты то отображаются то нет, то работают, а после перестают. Очень странное вообще поведение. 
Интересен глюк с чёрным квадратом вокруг курсора, который проявляется с Windows и rdesktop, но не проявляется с xfreerdp. Предположительно, апстрим тестировал именно с xfreerdp.
Comment 7 Pavel Isopenko 2017-05-10 18:48:51 MSK
Ещё метод, по мотивам обсуждения на github.com/neutrinolabs/xrdp/issues/337
# diff /etc/xrdp/xrdp_keyboard.ini.orig /etc/xrdp/xrdp_keyboard.ini
78c78
< rdp_layout_us=us
---
> rdp_layout_us=us,ru
И, в сеансе пользователя, один раз передёрнуть комбинацию переключения раскладок. Параматры клавиатуры - Раскладки - Параметры. Например, один раз переключиться на LShift+LAlt и обратно на Ctrl+Shift. Всё, для этого пользователя переключение раскладок работает.
Похоже, у апстрима проблема с реализацией маппинга раскладок rdp<>X11.
Comment 8 Pavel Isopenko 2017-05-17 17:10:44 MSK
Created attachment 7088 [details]
Правка xrdp_keyboard.ini, включающая поддержку кириллицы

Проверено с актуальными xfreerdp из p8, RDP Client for Mac от Microsoft, родными Windows tsclient. При переподключении к уже установленной сессии пропадает клавиатурная комбинация переключения раскладок, но это уже вопрос следующий.
Comment 9 Pavel Isopenko 2017-05-17 17:20:05 MSK
При подключении к новой сессии.
$ setxkbmap -print | grep xkb_symbols
	xkb_symbols   { include "pc+us+ru:2+group(ctrl_shift_toggle)"	};
После отключения и переподключения к существующей сессии.
$ setxkbmap -print | grep xkb_symbols
	xkb_symbols   { include "pc+us+ru:2"	};
Апстрим не поддерживает переключение национальных раскладок с клавиатуры? В github.com/neutrinolabs/xrdp/issues/337 его об этом просили, но запрос остался без ответа.
Переключение можно вернуть или $ setxkbmap -option 'grp:ctrl_shift_toggle', или мышью через Параметры клавиатуры на самом переключателе. Выключить-включить комбинацию, и будет работать, но только в текущей сессии.
Comment 10 Michael Shigorin 2019-04-05 15:56:50 MSK
(В ответ на комментарий №9)
> Апстрим не поддерживает переключение национальных раскладок с клавиатуры? В
> github.com/neutrinolabs/xrdp/issues/337 его об этом просили, но запрос остался
> без ответа.
Ага, там остановились на причёсывании пользовательского хака при сборке:

kb_model="pc105"
kb_layout="us,ru"
kb_options="grp:alt_shift_toggle,grp_led:scroll"
sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xorgxrdp/xrdpkeyb/rdpKeyboard.c
Comment 11 Andrey Prokopyev 2019-05-29 09:39:46 MSK
Проблему черного квадрата решил сменой ТЕМЫ на одну из дефолтных. Правда на разных компах у меня это получалось с разной темой. Приходится несколько раз переключиться на разные темы, чтобы подобрать ту, которая без квадрата.
Comment 12 Олег Соловьев 2019-05-30 09:50:07 MSK
А что с этой багой?
Починено или нет?
Comment 13 Pavel Isopenko 2019-05-30 17:18:42 MSK
(В ответ на комментарий №12)
> А что с этой багой?
> Починено или нет?

Предположительно починено. Только что обновлялся из Сизифа - вроде всё в порядке. У меня MATE (ставился с regular-mate), значит когда соберётся Рабочая Станция 9 тоже по идее должно быть нормально.
Comment 14 Олег 2019-05-30 17:24:10 MSK
(В ответ на комментарий №13)
> (В ответ на комментарий №12)
> > А что с этой багой?
> > Починено или нет?
> 
> Предположительно починено. Только что обновлялся из Сизифа - вроде всё в
> порядке. У меня MATE (ставился с regular-mate), значит когда соберётся Рабочая
> Станция 9 тоже по идее должно быть нормально.

В таком случае закрываю.