Активация экрана блокировки с помощью systemd не работает

Я пытаюсь активироватьbetterlockscreenкаждый раз, когда я закрываю свой ноутбук, используя этот служебный файл systemd:

      [Unit]
Description = Lock screen when going to sleep/suspend
Before=sleep.target
Before=suspend.target

[Service]
User=%I
Type=simple
Environment=DISPLAY=:0
ExecStart=/usr/local/bin/betterlockscreen --lock
TimeoutSec=infinity
ExecStartPost=/usr/bin/sleep 1   

[Install]
WantedBy=sleep.target
WantedBy=suspend.target

Когда я бегуsystemctl status betterlockscreen@$USERЯ понимаю

      ○ betterlockscreen@tom.service - Lock screen when going to sleep/suspend
     Loaded: loaded (/lib/systemd/system/betterlockscreen@.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Wed 2022-09-21 20:49:58 CEST; 3h 28min ago
   Main PID: 168557 (code=exited, status=0/SUCCESS)
        CPU: 763ms

Sep 21 20:33:18 tom-ThinkPad-X1-Carbon-Gen-9 systemd[1]: Starting Lock screen when going to sleep/suspend...
Sep 21 20:33:18 tom-ThinkPad-X1-Carbon-Gen-9 betterlockscreen[168557]: [B] Betterlockscreen
Sep 21 20:33:18 tom-ThinkPad-X1-Carbon-Gen-9 betterlockscreen[168557]: [*] Running prelock...
Sep 21 20:33:18 tom-ThinkPad-X1-Carbon-Gen-9 betterlockscreen[168557]: [*] Locking screen... (FAILSAFE MODE)
Sep 21 20:33:18 tom-ThinkPad-X1-Carbon-Gen-9 betterlockscreen[168557]: [*] Running postlock...
Sep 21 20:49:58 tom-ThinkPad-X1-Carbon-Gen-9 systemd[1]: betterlockscreen@tom.service: Deactivated successfully.
Sep 21 20:49:58 tom-ThinkPad-X1-Carbon-Gen-9 systemd[1]: Started Lock screen when going to sleep/suspend.

Выполнение/usr/local/bin/betterlockscreen --lockв командной строке блокирует экран, как и ожидалось.

Что я делаю не так?

1 ответ

У меня была та же проблема, и я попробовал несколько способов ее решения, но ни один из них не помог.
Посмотрев на это https://bbs.archlinux.org/viewtopic.php?id=279840\, я переключил свой диспетчер дисплея с sddm на ly , и теперь он работает отлично.

Здесьbetterlockscreen@$USERконфигурация, которую я использую:

      [Unit]
Description=Lock screen when going to sleep/suspend
Before=sleep.target
Before=suspend.target

[Service]
User=%I
Type=simple
Environment=DISPLAY=:0
ExecStart=/usr/bin/betterlockscreen --lock
TimeoutSec=infinity
ExecStartPost=/usr/bin/sleep 1

[Install]
WantedBy=sleep.target
WantedBy=suspend.target
Другие вопросы по тегам