Bug 47957 - Некорректная работа виджета "Смена языка" для lightdm-kde-greeter
Summary: Некорректная работа виджета "Смена языка" для lightdm-kde-greeter
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: lightdm-kde-greeter (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Golubev
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-11 15:53 MSK by Osmolovskaya Anastasia
Modified: 2024-04-10 16:12 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Osmolovskaya Anastasia 2023-10-11 15:53:42 MSK
Проверялось в p10 - ошибка воспроизводится
Проверялось в Sisyphus - ошибка не воспроизводится

Версия пакета: lightdm-kde-greeter=0.4.16-alt1

Тестовые стенды:
* Alt Workstation K 10.2 x86-64

Шаги для воспроизведения:
1. Установить чистую систему Alt Workstation K 10.2
2. На экране приветствия LightDM проверить переключение языка с помощью виджета "Смена языка"

Ожидаемый результат: переключение работает корректно 

Реальный результат: нельзя изменить раскладку клавиатуры, используя виджет переключения языка - доступна только Английская (US) раскладка
---------------------
Дополнительно: 
* данное поведение не воспроизводится в сизифе
* достаточно нажать любую клавишу на физической клавиатуре, чтоб виджет заработал
Comment 1 Anton Golubev 2023-12-12 11:20:16 MSK
Судя по всему это баг/особенность Xorg. Альтератор помещает настройки раскладок в файл
/etc/X11/xorg.conf.d/00-keyboard.conf:
> Section "InputClass"
> 	Identifier "system-keyboard"
> 	MatchIsKeyboard "on"
> 	Option "XkbLayout" "us,ru"
> 	Option "XkbModel" "pc104"
> 	Option "XkbOptions" "grp:caps_toggle"
> EndSection
Но они не записываются в устройство "Virtual Core Keyboard", а только во все реальные устройства, которые являются "подчинёнными". Вот, например вывод xinput:

>  Virtual core pointer
>     Virtual core XTEST pointer
>     Logitech Wireless Mouse PID:4022
>     Logitech Wireless Keyboard PID:4023
>     ETPS/2 Elantech Touchpad
>  Virtual core keyboard
>     Virtual core XTEST keyboard          [ * ]
>     Power Button                         [ * ]
>     Video Bus                            [ * ]
>     Acer Wireless Radio Control          [ * ]
>     Video Bus                            [ * ]
>     Power Button                         [ * ]
>     Sleep Button                         [ * ]
>     AT Translated Set 2 keyboard         [ * ]
>     Acer WMI hotkeys                     [ * ]
( Я пометил [ * ] устройства, куда попадают настройки.)

Но считывание и переключение раскладок происходит именно с Virtual Core Keyboard. После первого события с любого из подчинённых устройств, настройки копируются в Virtual Core Keyboard, и проблема лечится.

Также можно увидеть, что Logitech Wireless Keyboard попала в подчинение Virtual Core Pointer, и при нажатии на её кнопки не происходит копирование правильных настроек в Virtual Core Keyboard, т.е. проблема не лечится, видна только одна раскладка. При этом ввод с клавиатуры работает нормально.

На этой же машине воспроизводится следующее: если использовать вышеупомянутую клавиатуру и запустить сессию KDE на Xorg, там тоже раскладки не меняются, пока не нажать физически на клавишу на самом ноутбуке.

Также проблема лечится если запустить setxkbmap просто без аргументов. Потому что тот сначала считывает свойство _XKB_RULES_NAMES, в котором присутствуют нужные раскладки, а потом полученные данные отправляет в Xorg в функции XkbGetKeyboardByName, и там они кладутся в Virtual Core Keyboard.
Comment 2 Корытов Иван 2024-04-10 16:12:29 MSK
(Ответ для Anton Golubev на комментарий #1)
> Судя по всему это баг/особенность Xorg. 

И вряд ли его будут исправлять, учитывая, что ему восемь лет.

https://gitlab.freedesktop.org/xorg/xserver/-/issues/257