Summary: | myconnector: Не происходит автоматической блокировки экрана при нахождении курсора мыши на окне rdp сеанса | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Шевченко Денис <shevchenkodyu> | ||||
Component: | myconnector | Assignee: | ekorneechev <ekorneechev> | ||||
Status: | RESOLVED LATER | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | bychenkovps, ekorneechev, ekorneechev, klark, martynenkoeo, mvk, proskurinov | ||||
Version: | unstable | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=48647 | ||||||
Attachments: |
|
Description
Шевченко Денис
2023-12-07 10:42:10 MSK
На p9 на версии $ rpm -q xfreerdp xfreerdp-2.2.0-alt1.x86_64 проблемы нет как в полноэкранном режиме, так и в оконном режиме. От MyConnector поведение никак не зависит, так как он передает в xfreerdp параметры запуска через CLI. Remmina скорее всего использует API freerdp, поэтому там проблемы нет. (Ответ для Evgeniy Korneechev на комментарий #1) > От MyConnector поведение никак не зависит, так как он передает в xfreerdp > параметры запуска через CLI. Remmina скорее всего использует API freerdp, > поэтому там проблемы нет. Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp, xfreerdp висит в процессах), и там тоже нет проблемы. (Ответ для Шевченко Денис на комментарий #2) > Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp, > xfreerdp висит в процессах), и там тоже нет проблемы. С какими параметрами запускается xfreerdp? Отвечу сам: /usr/bin/xfreerdp -decorations /w:1920 /h:988 /kbd:0x00000409 /u:administrator /parent-window:65011831 /bpp:24 /audio-mode:0 /sound:sys:alsa /drive:media,/media /network:lan /rfx /cert-ignore +clipboard /port:3389 /v:ts вот как раз /parent-window:65011831 и не дает уйти в "блокировку", так как фокус постоянно на окне родительском. Если запускать голый xfreerdp - фокус "внутри" окна, а не "на окне" - если мы держим курсор на верхней панели окна (xfreerdp в оконном режиме) - то блокировка работает. Если чуть ниже в RDP - уже не сработает. Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф приедет скоро). (Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Спасибо за разъяснение причины. Попробовал библиотеки и бинарник из ночной сборки пакета для fedora. Версия xfreerdp: 3.0.0-dev6 (dd56308bd) Брал тут: https://pub.freerdp.com/repositories/rpm/fedora/fedora-39/freerdp-nightly/x86_64/ Проблема, к сожалению не ушла. (Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Пробовали xfreerdp 3.0.0-rc0? (Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Имеются проблемы со сборкой xfreerdp 3.0.0 в сизифе. В виду неготовности ряда апстримов к сборке, задание отложено. Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)? (Ответ для Шевченко Денис на комментарий #7) > Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в > котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)? Можно, но сроков пока не обозначу. (Ответ для Evgeniy Korneechev на комментарий #8) > (Ответ для Шевченко Денис на комментарий #7) > > Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в > > котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)? > > Можно, но сроков пока не обозначу. Добрый день. Подскажите, пожалуйста, исправляется ли ошибка? На Linux Mint 21 не вопроизводится: $ mate-screensaver --version mate-screensaver 1.26.1 $ xfreerdp --version This is FreeRDP version 2.6.1 (2.6.1) Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке. (Ответ для Evgeniy Korneechev на комментарий #10) > На Linux Mint 21 не вопроизводится: > $ mate-screensaver --version > mate-screensaver 1.26.1 > $ xfreerdp --version > This is FreeRDP version 2.6.1 (2.6.1) > > Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке. Речь шла о проблеме в KDE (ALT Workstation K), а не Mate. И только в X11 (в Wayland не воспроизводится проблема). Видимо из-за #48647 решил, что в МАТЕ тоже... Но мне кажется вопросы к скринсейверу все таки. Реализовать работу xfreerdp в окне - пока нет времени. Created attachment 15549 [details]
Тест запуска xfreerdp в окне
В окне запустить таким образом удается (это просто пример реализации - можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). Однако у меня не работает клавиатура в RDP-сеансе при этом...
(Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Проверил тестовый скрипт запуска xfreerdp в окне, в среде KDE (ALT Workstation K Sisyphus). Блокировка экрана клиентской машины теперь срабатывает независимо от нахождения курсора мыши (на окне RDP сеанса или вне его). Клавиатура в RDP-сеансе тоже не работает. (Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Добрый день. Есть ли новости по исправлению ошибки? (Ответ для Шевченко Денис на комментарий #15) > Есть ли новости по исправлению ошибки? У меня нет идей. (Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Эмпирическим путём было выяснено, что параметр '/f' в строке запуска скрипта xfreerdp разблокирует клавиатуру. Так же найдена возможная причина такого поведения: ввод с клавиатуры идёт на создаваемое скриптом gtk окно, а не на приложение xfreerdp в нём. Возможно, эта информация чем-то поможет разработчику. Информация по багу: ---- ksmserver не может заблокировать экран: 1. он не "забывает" его заблокировать 2. попытка заблокировать экран оканчивается неудачей ---- причины: захват клавиатуры в xfreerdp c точки зрения kde plasma - такое поведение вполне логичное, если клавиатура остутствует и заблокировать экран,будет невозможно его разблокировать без клавиатуры remmina: захват клавитуры по умолчанию выключен, если включить, баг воспроизведется wayland: захват клавиатуры не удается, как следствие - баг не воспроизводится ----- захват клавиатуры позволяет xfreerdp однозначно определится с раскладкой и типом клавиатуры, но не является обязательным ----- решение: для xfreerdp версии 2.x запускать xfreerdp /kbd:0x00000419 /kbd-fn-key:12 -grab-keyboard /f то-есть запускать без захвата клавиатуры с явным указанием ее типа, по необходимости можно играться с параметрами (419 это русская клавиатура) ключевым моментом является -grab-keyboard для xfreerdp версии 3.x есть возможность отключить захват клавиатуры нажатием правого ctrl (как в vmbox) (Ответ для proskurinov@basealt.ru на комментарий #18) > для xfreerdp версии 2.x запускать > xfreerdp /kbd:0x00000419 /kbd-fn-key:12 -grab-keyboard /f > то-есть запускать без захвата клавиатуры с явным указанием ее типа, > по необходимости можно играться с параметрами (419 это русская клавиатура) > ключевым моментом является -grab-keyboard Спасибо. Возможно добавлю чекбокс для "захвата клавиатуры", пока же можно указывать данные параметры в MyConnector в поле "Параметры пользователя" В /etc/xrdp/sesman.ini (xrdp сервер): KillDisconnected=false IdleTimeLimit=60 Так логичнее. У виндового сервера есть аналогичные настройки в реестре. Добавлю по поводу ключа "-grab-keyboard". При его использовании горячие клавиши (например, "alt+tab") не срабатывают в сессии RDP, что делает работу не очень комфортной. |