Bug 46296 - Баг с Num Lock
Summary: Баг с Num Lock
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kwin (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL: https://bugs.kde.org/show_bug.cgi?id=...
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-28 23:49 MSK by Александр
Modified: 2024-12-11 09:05 MSK (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Александр 2023-05-28 23:49:18 MSK
Добрый день. В настройках KDE (c wayland) установлено включать Num Lock при старте. Да, он включается, по крайней мере светодиод. Но не работает. Нужно нажать кнопку Nim Lock (светодиод так же остается включённый) и тогда работает.
На X11 всё работает штатно. Без проблем
Comment 1 Evgeniy 2023-06-04 12:05:59 MSK
У меня и светодиод не работает, проблема такая-же. При запуске системы num lock отключён, не зависимо от того какое для него действие  (Включить, отключить, не изменять) выбрано при запуске системы в настройках.
Comment 2 Александр 2023-06-04 20:15:09 MSK
(Ответ для Evgeniy на комментарий #1)
> У меня и светодиод не работает, проблема такая-же. При запуске системы num
> lock отключён, не зависимо от того какое для него действие  (Включить,
> отключить, не изменять) выбрано при запуске системы в настройках.

Переключись на X11. Там нормально.
Comment 3 Evgeniy 2023-06-07 17:53:37 MSK
(Ответ для david-men на комментарий #2)
> (Ответ для Evgeniy на комментарий #1)
> > У меня и светодиод не работает, проблема такая-же. При запуске системы num
> > lock отключён, не зависимо от того какое для него действие  (Включить,
> > отключить, не изменять) выбрано при запуске системы в настройках.
> 
> Переключись на X11. Там нормально.

И как это исправит баг с num lock на wayand?
Comment 4 Evgeniy 2023-10-27 15:05:55 MSK
Можно ли как-то исправить этот баг? Сейчас проблем с Wayland всё меньше и меньше, может и его получится исправить.
Comment 5 Evgeniy 2023-10-27 15:06:44 MSK
В регулярке кде и в рабочей станции К этот баг одинаковый
Comment 6 Жора Змейкин 2024-03-04 10:46:48 MSK
Результат тестирования баг-репорта 46296.

Тестировочный стенд:
==============================
- OS: ALT Regular Sisyphus x86_64 
- Kernel: 6.1.80-std-def-alt1 
- DE: Plasma 5.27.10 
- CPU: Intel i5-5200U (4) @ 2.700GHz 
- GPU: Intel HD Graphics 5500 
- GPU: NVIDIA GeForce 940M 
- Display: wayland 
Система обновлена: 04.03.2024

Шаги, приводящие к ошибке:
==============================
1. Открыть Параметры системы KDE5
2. Перейти в «Устройства ввода»
3. В параметрах «Клавиатуры» есть настройка «Режим NumLock при запуске Plasma». Включите эту настройку.
4. Перезагрузитесь, при следующем выборе сеанса, выберите сеанс «Plasma (Wayland)»

Фактический результат:
==============================
После захода в сессию, NumLock всё также будет отключён.

Ожидаемый результат:
==============================
NumLock должен был включится автоматически.

Дополнительная информация:
==============================
Данная функция корректно работает на X11, но не работает в Wayland. Проверял на остальных дистрибутивах, это не баг KDE.
Comment 7 Sergey V Turchin 2024-03-04 10:56:10 MSK
проверьте с build#341533
Comment 8 Savelev Pavel 2024-03-10 13:59:38 MSK
Версия пакета: libinput-1.25.0-alt1.1
Проверялось в Sisyphus, ошибка воспроизводится
Comment 9 Thiamine 2024-10-04 09:38:30 MSK
Переход Сизиф  на KDE6 проблему не решил. По прежнему Num Lock выключен после перезагрузки/включения, не смотря на настройку соответствующего параметра.
Comment 10 Жора Змейкин 2024-10-06 01:11:43 MSK
Некоторые люди предложили обходной вариант решения проблемы:
1. Открыть ~/.config/kcminputrc
2. Прописать:
[General]
NumLock=0

Это активирует Num Lock при каждом запуске Plasma. Примечательно, что Параметры системы стирают параметр при попытке включить эту функцию. Так что уверен, это не баг libinput, а баг системных параметров.
Comment 11 Евгений 2024-11-05 12:07:35 MSK
ALT Regular, KDE Plasma 6.2.2, Wayland, подтверждаю наличие данного бага, прошу устранить.
Comment 12 Aleksandr Shamaraev 2024-11-09 12:38:23 MSK
ALT Regular, KDE Plasma 6.2.3, Wayland - воспроизводится.
Лечится добавление в 
kwrite ~/.config/kcminputrc

[Keyboard]
NumLock=0
Comment 13 Aleksandr Shamaraev 2024-11-09 12:42:01 MSK
Сергей здравствуйте.
Не сочтите за "дерзость", добавил Вас в багу для информации О:-)
Comment 14 Никита 2024-11-15 08:15:49 MSK
Здравствуйте. У меня есть новости. Есть вот такой вот патч.

```
-— a/src/xkb.cpp
+++ b/src/xkb.cpp
@@ -687,7 +687,7 @@ void Xkb::updateKeymap(xkb_keymap *keymap)
if (m_numLockConfig) {
const KConfigGroup config = m_numLockConfig->group(QStringLiteral("Keyboard"));
// STATE_ON = 0, STATE_OFF = 1, STATE_UNCHANGED = 2, see plasma-desktop/kcms/keyboard/kcmmisc.h
- const auto setting = config.readEntry("NumLock", 2);
+ const auto setting = config.readEntry("NumLock", 0);
if (setting != 2) {
setLock(m_numModifier, !setting);
}
```

Самое интересное, что он касается далеко не systemsettings и даже не plasma-desktop, а kwin.

Я собрал rpm-пакеты kwin и протестировал их в виртуальной машине и на рабочей, подстраховавшись timeshift. Вроде, исправление помогает.
Comment 15 Max Pozdeev 2024-11-26 01:57:08 MSK
(Ответ для Жора Змейкин на комментарий #10)
> Некоторые люди предложили обходной вариант решения проблемы:
> 1. Открыть ~/.config/kcminputrc
> 2. Прописать:
> [General]
> NumLock=0
> 
> Это активирует Num Lock при каждом запуске Plasma. Примечательно, что
> Параметры системы стирают параметр при попытке включить эту функцию. Так что
> уверен, это не баг libinput, а баг системных параметров.

Я полагаю, что этот параметр затирается из патча alt-def-key-numlock.patch в пакете plasma-desktop. Он меняет настройку "NumLock при запуске" по умолчанию на "включить". При этом дефолтные значения при сохранении настройки, похоже, в файле не сохраняются (и убираются).
Comment 16 Никита 2024-11-26 07:12:01 MSK
Вы совершенно правы. Для этого патчи и нужны: не только исправлять ошибки исходные пакетов, но и кастомизировать их под свою систему. Просто такая неочевидная взаимосвязь пакетов усложняет это. Точно также была создана проблема с сохранением сеансов #51942. Скорее всего, это не единственный пример.
Comment 17 Никита 2024-12-09 15:20:24 MSK
Не понимаю зачем здесь эта ссылка, потому что, в моем понимании, она ничего не дает. В багтрекере KDE тема начата в 2016-м году. Кодовая база с тех пор могла поменяться. К тому же они сами не могут определиться что есть `STATE_UNCHANGED`, а понять какая проблема действительно есть из этого полотна сообщений я не смог. Решил провести свои тесты.
Скачал `kde-neon user edition` версией от 1-го декабря. Поставил на ноутбук с numpad'ом и прогнал по разным сценариям. Результат получился интересный. Настройки `STATE_ON`, `STATE_OFF` работают одинаково в обоих типах сессий, а вот `STATE_UNCHANGED` - нет. А именно, в сессии `X11` `NumLock` остается в состоянии из окна авторизации (`DM`), то есть настройка работает корректно. А вот в случае `Wayland`, в независимости от состояния в `DM`, при входе в сессию он оказывается выключенным.
И тут можно сказать, что проявляется наш баг, но у меня есть объяснение этой ситуации. `X11` сессия, как и `DM`, работают на одном сервере `X`. Поэтому после авторизации состояние `NumLock` сохраняется. При запуске `Wayland`, `X` сервер, который поднимался для запуска `DM`, выключается. Что происходит между "пост сдал" и "пост принял" мне не известно, но смею предположить, что `NumLock` принимает аппаратное состояние из `BIOS`. Поэтому после запуска с `STATE_UNCHANGED` он всегда выключен.
В нашем случае, по умолчанию( `plasma-desktop` ) установлено `STATE_ON` вместо `STATE_UNCHANGED`. Как бы то странно не было, но инициация `NumLock` происходит в `KeyboardLayout` подмодуле `KWin`. И соответственно, эти изменения нужно параллельно внести и там. Либо вносить default-настройки не через `kcm_keyboard`, а через шаблонный файл `kcminputrc`, который кладется в `HOME/.config/kdedefaults/`. Но, вроде, это может потянут большой объем изменений в `plasma-desktop` (Я не натыкался и не искал, где задается шаблонный вид этого фала).
У меня нет теоретических знаний по linux. Поэтому я могу ошибаться, хоть я старался правильно понять имеющуюся в интернете информацию.
Comment 18 Никита 2024-12-11 09:05:34 MSK
Сегодня пришло обновление kwin на p11. Без блока
```
[Keyboard]
NumLocl=0
```
в `kcminputrc` NumLock в Wayland включился, поэтому закрываю баг
Comment 19 Никита 2024-12-11 09:05:49 MSK
Сегодня пришло обновление kwin на p11. Без блока
```
[Keyboard]
NumLocl=0
```
в `kcminputrc` NumLock в Wayland включился, поэтому закрываю баг