Подсветка клавиатуры включается после включения экрана блокировки / дисплея

Я только что обновил Ubuntu (с 15.04 до 15.10), и теперь у меня странное поведение: всякий раз, когда я блокирую экран (используя любой из Ctrl+Alt+L, Win+L или просто нажимаю "Блокировка" на панели задач меню), подсветка клавиатуры включается, хотя я всегда выключаю ее.

Я понятия не имею, с чего начать расследование. Этого не произошло в Ubuntu 15.04, и, похоже, другие люди не сталкивались с этим.

Мой ноутбук Dell Inspiron, если это поможет.

Обновление: позже я понял, что эта проблема возникает всякий раз, когда включается дисплей, что происходит сразу после блокировки экрана из-за ошибки. Итак, это связанные события, но настоящая причина - включение экрана.

1 ответ

Решение

Итак, Интернет - действительно удивительная вещь! После долгих исследований и изучения многих ссылок на форумах мне удалось лучше понять проблему, выяснить, какая программа за это ответственна, и, наконец, отключить это поведение навсегда. Я думал, что запишу свои шаги, на случай, если другие люди столкнутся с той же проблемой.

Шаг 1. Мониторинг системы, чтобы узнать, включена ли подсветка клавиатуры

Прежде всего необходимо знать, что текущее состояние подсветки клавиатуры можно проверить, прочитав файл. /sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness, Итак, мы хотели бы получать уведомления о любых изменениях в этом файле и, в идеале, какой процесс вызвал это изменение.

Это можно сделать с помощью fanotify. Я использовал пример программы, представленной на странице руководства, и добавил несколько модификаций *, чтобы я мог отслеживать изменения в файле яркости. Оказывается, что процесс, ответственный за модификацию, был /usr/lib/upower/upowerd, который является процессом-демоном для UPower.

Шаг 2. Узнайте, почему UPower включает подсветку (не работает)

Это была самая нечеткая часть расследования, и я до сих пор не могу понять, почему это происходит. Я нашел человека с очень похожей проблемой, но без решения, поэтому начал искать, смогу ли я просто полностью отключить UPower (и каковы будут последствия), когда я нашел эту ссылку. Оказывается, у UPower есть файл конфигурации! Так-то лучше.

Шаг 3. Остановите UPower от включения подсветки клавиатуры

Наконец, я отредактировал вышеупомянутый файл конфигурации, расположенный в /etc/dbus-1/system.d/org.freedesktop.UPower.confи изменил <allow> в <deny> в следующей строке:

<allow send_destination="org.freedesktop.UPower"
       send_interface="org.freedesktop.UPower.KbdBacklight"/>

Затем я перезапустил dbus с sudo service dbus restart (использование systemctl restart dbus.service в Ubuntu 16.04 и более поздних версиях) и приступил к блокировке моего экрана, чтобы проверить результат и... это сработало!! Ну, Сорта. Экран входа в систему не отображался, поэтому я не смог войти в систему и был вынужден перезапустить компьютер. Но тогда все работало отлично!

И это все! Мне все еще интересно, что было бы правильным способом сделать это. Если вы знаете, оставьте комментарий, пожалуйста!

* Например, пример программы был настроен только на мониторинг FAN_OPEN_PERMа также FAN_CLOSE_WRITE события, но в этом FAN_MODIFY событие.

Другие вопросы по тегам