пятница, 1 мая 2020 г.

Xfce4 не блокирует экран при закрывании крышки ноутбука

На ноутбуке установлен Xfce4 4.14 который я пересобрал под Debian Buster. Пока в качестве реакции на закрывании крышки ноутбука был настроен hibernate - экран блокировался, но стоило перейти на suspend - экран перестал блокироваться. Если отправить ноутбук в спячку нажатием кнопки Sleep, то блокировка работает.

Полез смотреть логи, для этого запустил в терминале journalctl -f и закрыл крышку. После просыпания увидел следующие записи:

May 01 20:03:42 dragoncore systemd-logind[711]: Lid closed.
May 01 20:03:42 dragoncore systemd-logind[711]: Suspending...
May 01 20:03:42 dragoncore NetworkManager[710]:   [1588352622.0356] manager: sleep: sleep requested (sleeping: no  enabled: yes)
May 01 20:03:42 dragoncore NetworkManager[710]:   [1588352622.0356] manager: NetworkManager state is now ASLEEP
May 01 20:03:42 dragoncore systemd[1]: Reached target Sleep.
May 01 20:03:42 dragoncore systemd[1]: Starting Suspend...
May 01 20:03:42 dragoncore systemd-sleep[2418]: Suspending system...
May 01 20:03:42 dragoncore kernel: PM: suspend entry (deep)
May 01 20:03:42 dragoncore kernel: PM: Syncing filesystems ... done.

Значит событие закрывания крышки ноутбука обработал logind, а не xfce4-power-manager.

Проверяю еще раз настройки:


Все на месте и если переключить "When laptop lid is closed" на "Hibernate", то экран блокируется. Пересмотрел настройки в /etc/systemd/logind.conf но там все по-умолчанию. Внимание привлек параметр LidSwitchIgnoreInhibited - полез смотреть какие inhibit'ы выставил xfce power manager

$ systemd-inhibit --list 
WHO                 UID  USER   PID  COMM            WHAT                                                     WHY                                       MODE 
ModemManager        0    root   707  ModemManager    sleep                                                    ModemManager needs to reset devices       delay
NetworkManager      0    root   710  NetworkManager  sleep                                                    NetworkManager needs to turn off networks delay
UPower              0    root   1386 upowerd         sleep                                                    Pause device polling                      delay
xfce4-power-manager 1000 andrey 1465 xfce4-power-man handle-power-key:handle-suspend-key:handle-hibernate-key xfce4-power-manager handles these events  block

4 inhibitors listed.

Отключена обработка кнопок Power, Suspend и Hibernate, но ничего нет про lid. Смотрю в документации какой параметр отвечает за это

$ systemd-inhibit --what=handle-lid-switch bash

$ systemd-inhibit --list                          
WHO                 UID  USER   PID  COMM            WHAT                                                     WHY                                       MODE 
ModemManager        0    root   707  ModemManager    sleep                                                    ModemManager needs to reset devices       delay
NetworkManager      0    root   710  NetworkManager  sleep                                                    NetworkManager needs to turn off networks delay
UPower              0    root   1386 upowerd         sleep                                                    Pause device polling                      delay
bash                1000 andrey 2803 systemd-inhibit handle-lid-switch                                        Unknown reason                            block
xfce4-power-manager 1000 andrey 1465 xfce4-power-man handle-power-key:handle-suspend-key:handle-hibernate-key xfce4-power-manager handles these events  block

5 inhibitors listed.

Теперь пробую закрыть крышку ноутбука в надежде что событие обработает xfce power manager, но ничего не происходит и ноутбук не засыпает.

Немного покопался в гугле и нашел ответ в FAQ по xfce4-power-manager. Чтобы обрабатывалось события закрытия крышки через менеждер нужно установить настройку в xfconf

$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -n -t bool -s false

Теперь ноутбук корректно блокирует экран при закрывании крышки.

Комментариев нет:

Отправить комментарий