Как заблокировать экран при закрытии крышки с помощью systemd?

Вопрос или проблема

Я запускаю Sway на Fedora 26 и хочу, чтобы мой ноутбук блокировался, когда я закрываю экран. Я изменил HandleLidSwitch на lock в /etc/systemd/logind.conf и после этого выполнил systemctl restart systemd-logind. Однако закрытие крышки ничего не дает.

Программа блокировки, которую я собираюсь использовать, — это Swaylock, и я могу вручную вызвать ее, выполнив команду swaylock в терминале.

Как мне заставить Systemd вызывать swaylock, когда он пытается закрыть экран (как указано в logind.conf)?

Цель

Если HandleLidSwitch установлен на режим сна, вы можете создать новую службу systemd с целью сна, и таким образом ваша служба будет выполняться, когда вызывается сон (крышка закрыта) вот пример с целью питания… обновите это на сон.

Команда при блокировке

Этот вопрос объясняет, как запустить команду, когда экран блокировки активирован

Скринсейвер

Вы можете использовать bash для отслеживания скринсейвера, если хотите запустить его, когда скринсейвер активирован; это объясняется здесь

Похоже, что swayidle предназначен для этого. Он может запустить swaylock “когда logind сигнализирует, что сессия должна быть заблокирована”:

swayidle -w lock 'swaylock -f -c 000000'

Ответ или решение

Чтобы заблокировать экран при закрытии крышки ноутбука с использованием systemd в окружении Sway на Fedora 26, следуйте ниже описанным подробным шагам. Этот процесс позволит вам настроить автоматическую блокировку экрана через swaylock при закрытии крышки устройства.

Шаг 1: Конфигурация systemd-logind

Сначала убедитесь, что в файле конфигурации logind.conf установлено правильное значение для HandleLidSwitch. Для этого откройте файл в текстовом редакторе с правами администратора:

sudo nano /etc/systemd/logind.conf

Найдите строку с HandleLidSwitch и измените её на:

HandleLidSwitch=lock

Если этой строки нет, добавьте её. После внесения изменений сохраните файл и выйдите из редактора.

Шаг 2: Перезапуск systemd-logind

Чтобы применить изменения, выполните следующую команду:

sudo systemctl restart systemd-logind

Шаг 3: Установка swayidle

Для автоматического вызова swaylock при закрытии крышки ноутбука, вы можете использовать swayidle. Если swayidle у вас ещё не установлен, вы можете установить его через пакетный менеджер:

sudo dnf install sway

Шаг 4: Конфигурация swayidle

Чтобы настроить swayidle для вызова swaylock, создайте или откройте существующий конфигурационный файл для вашей сессии Sway (например, ~/.config/sway/config) и добавьте следующую строку:

exec swayidle -w lock 'swaylock -f -c 000000'

Эта команда будет следить за событиями блокировки и вызовет swaylock с заданным фоновым цветом (в данном случае черным).

Шаг 5: Создание службы systemd (опционально)

Если вы хотите, чтобы swaylock запускался именно при закрытии крышки, вы можете создать пользовательскую службу systemd. Для этого создайте файл службы:

sudo nano /etc/systemd/system/lidlock.service

Вставьте следующий код в этот файл:

[Unit]
Description=Lock the screen on lid close
After=sway.service

[Service]
Type=simple
Environment=DISPLAY=:0
ExecStart=/usr/bin/swaylock -f -c 000000
Restart=on-failure

[Install]
WantedBy=logind.target

После сохранения файла выполните следующие команды, чтобы активировать и запустить службу:

sudo systemctl enable lidlock.service
sudo systemctl start lidlock.service

Шаг 6: Проверка работы

После выполнения всех шагов, закройте крышку своего ноутбука и проверьте, заблокируется ли экран с swaylock. Если всё настроено правильно, то при закрытии крышки окно блокировки должно появляться.

Заключение

Следуя указанным выше шагам, вы сможете настроить автоматическую блокировку экрана на вашем устройстве под управлением Sway и Fedora 26 при закрытии крышки. Важно следить за журналами системы в случае возникновения проблем, чтобы получить больше информации об ошибках и их устранении.

Оцените материал
Добавить комментарий

Капча загружается...