2

Недавно я перешел на использование systemd для управления энергопотреблением.

Чтобы заблокировать мой экран при возврате из режима ожидания, я создал /etc/systemd/system/i3lock.service с этим содержимым

[Unit]
Description=i3lock
Before=sleep.target

[Service]
User=fommil
Type=forking
Environment=DISPLAY=:0
ExecStart=/usr/bin/i3lock -c 000000

[Install]
WantedBy=sleep.target

и затем запустил systemctl enable i3lock.service .

Но это означает, что блокировка всегда для пользователя fommil .

Как настроить службу, которая будет запускать блокировку экрана в качестве пользователя, которому в настоящее время принадлежит сеанс X?

1 ответ1

1

Вы должны использовать пользовательский блок для этого вместо системного блока. Поместите его в /etc/systemd/user/ , если вы хотите, чтобы он был доступен (не включен) для всех пользователей, или в $HOME/.config/systemd/user/ , если вы хотите, чтобы он был доступен только для этого пользователя.

Затем вы можете удалить опцию User= (и, возможно, опцию Environment= , вы можете запустить systemctl show-environment от имени текущего пользователя, чтобы увидеть, были ли необходимые env vars уже импортированы), а затем включить службу с помощью systemd --user enable i3clock . (Или sudo systemd --global enable i3lock если он доступен для всех пользователей и вы хотите, чтобы он был включен для всех пользователей .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .