Session lock (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Session lock
. Дата последней синхронизации: 28 января 2024. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Существует множество утилит для блокировки экрана в текущем сеансе. Но важно отметить, что выбор утилиты сильно зависит от среды, в которой вы находитесь: виртуальная консоль или графический сервер (Xorg или Wayland).
Смотрите
Список приложений/Безопасность#Блокировка экрана
.
Среды
Виртуальная консоль
Для блокировки виртуальной консоли можно использовать
vlock
или
physlock
AUR
.
Xorg
В Xorg есть много разных блокировки сеанса, поэтому этот раздел, скорее всего, будет неполным. Тем не менее, вот некоторые методы:
xlock
из пакета
xlockmore
xsecurelock
из пакета
xsecurelock
xscreensaver-command -lock
из пакета
xscreensaver
xss-lock
slock
из пакета
slock
kscreenlocker
i3lock
i3lock-color
AUR
alock
AUR
В большинстве сред рабочего стола предусмотрены способы блокировки сеанса.
Wayland
Можно использовать один из следующих методов:
swaylock
waylock
gtklock
Блокировка сеанса
Заблокировать сеанс можно различными способами:
через терминал
с помощью графического интерфейса:
значком рабочего стола
с помощью горячих углов
из меню (управляемого мышью или клавиатурой)
с помощью
горячих клавиш
по событию:
бездействие (с помощью
systemd
,
xss-lock
или
xautolock
)
события systemd
(приостановка, гибернация и т.д.).
Последний пункт (срабатывание блокировки от события) является самым сложным, потому что вы можете сделать это одним из двух способов:
получить триггер действия для выполнения блокировки, а затем выполнить изначальное действие.
из триггера события добавить блокировку в цепочку событий. Пока это можно сделать только с помощью systemd.
Триггеры командных оболочек
Zsh
Чтобы выполнить команду после бездействия терминала, можно использовать переменную окружения TMOUT.
Для выполнения блокировки её можно объединить с ловушкой по сигналу ALARM. Без ловушки оболочка просто завершится.
Возможно, вы захотите определить, находитесь ли вы в графической среде, иначе ваши графические терминалы могут начать исчезать без понимания причин.
Триггеры Xorg
xss-lock
xss-lock
срабатывает при одном из двух событий:
события systemd
DPMS
Преимуществом является то, что вы можете управлять ручной блокировкой, блокировкой по бездействию и блокировкой при уходе в ждущий режим в одном и том же месте.
Чтобы выполнить действие по одному из этих событий:
$ xss-lock <утилита-блокировки>
События systemd
По умолчанию xss-lock подписывается на
suspend
,
hibernate
,
lock-session
и
unlock-session
с соответствующими действиями (запустить блокировщик и ждать, пока пользователь разблокирует или убьёт блокировщик).
Вы можете предотвратить срабатывание xss-lock при при событиях
suspend
и
hibernate
(ждущий и спящий режимы) с помощью опции
--ignore-sleep
.
Заблокировать текущий сеанс вручную можно командой
loginctl lock-session
, также можно заблокировать все сеансы командой
loginctl lock-sessions
.
DPMS
Настройка таймаута DPMS:
# Переход в энергоэффективный режим после 10 минут бездействия
xset s on
xset s 600
Сигналы DPMS также можно настроить в
/etc/X11/xorg.conf.d/
в секции
Monitor
.
Используя сигнал DPMS, можно установить второй таймер, например, для уведомления пользователя или затемнения экрана. Например (из
xss-lock(1)
):
# Погасить экран спустя три минуты неактивности, заблокировать экран спустя ещё две минуты, используя i3lock:
xset s 180 120
xss-lock -n dim-screen.sh -- i3lock -n
Пример
dim-screen.sh
есть в каталоге
/usr/share/doc/xss-lock
.
Примечание
При использовании xss-lock с
DPMS
вам придётся самостоятельно гасить экран. Он не будет срабатывать при просмотре видео.
xautolock
$ xautolock -time 12 -locker "systemctl suspend" -detectsleep
Примечание
xautolock имеет ограничения у выставляемых таймеров:
от 1 минуты до 1 часа для
time
от 10 минут до 2 часов для
killtime
Может понадобиться добавить
-detectsleep
, чтобы xautolock не блокировал сеанс после возвращения из ждущего режима. Одной из приятных особенностей xautolock являются
corners
.
Триггеры Wayland
swayidle
swayidle
получает от Wayland-композитора информацию о неактивности, а также следит за событиями systemd, и выполняет соответствующие команды. Смотрите
Sway#Idle
.
Уведомления D-Bus
Используя
loginctl lock-session
или действие
lock
в
logind.conf(5)
, вы можете уведомить систему через DBUS о том, что хотите заблокировать сеанс. Это уведомление может быть обработано, например, с помощью xss-lock.
Бездействие
В
logind.conf(5)
вы можете настроить
IdleAction
на
lock
. Это отправит уведомление DBUS, которое должно быть кем-то обработано (например, xss-lock) для блокировки сеанса.
Обратите внимание, что это относится ко всей системе целиком (так что это не идеально для многопользовательской среды).
Обратите также внимание, что «это требует, чтобы пользовательские сеансы правильно сообщали системе о бездействии».
Юниты
Перед ждущим или спящим режимом
Можно использовать
хук сна
.
[Unit]
Description=Lock the screen
Before=sleep.target

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

[Install]
WantedBy=sleep.target
Чтобы включить его для определённого пользователя,
включите
sleep@
имяпользователя
.service
.
Закрытие крышки ноутбука
Можно использовать действие
lock
для соответствующего
события ACPI
.
Смотрите также
Geoff Greer's site: Linux Laptop Locking