У меня установлен xsecurelock на arch, и я могу заблокировать сеанс, запустив xsecure lock
. Попытка заблокировать с помощью loginctl lock-session
ничего не дает (никакой ошибки, просто нет вывода и нет блокировки).
Из проведенного мной исследования loginctl lock-session
следует, что, по-видимому, он вызывает xss-lock
, но я не вижу, как настроить xss-lock так, чтобы он знал, что в качестве блокировщика следует использовать xsecurelock.
Запуск xss-lock
жалуется на то, что не указан шкафчик, и запуск xss-lock xsecurelock
просто зависает.
решение1
запуск xss-lock xsecurelock просто зависает.
Да, именно это он и должен делать.
Вся суть в loginctl lock-session[s]
том, что это небегатьничего напрямую; вместо этого он передает сигнал «Блокировка» программам, которые уже запущены в сеансе вашего рабочего стола, — по сути, сообщая среде рабочего стола о необходимости заблокировать себя. (Это аккуратно избегает всех проблем с «отсутствующей переменной среды», которые могут возникнуть при попытке запустить блокировщик извне.)
Итак, "xss-lock" предназначен для постоянного выполнения в качестве фонового процесса – демона, только на уровне сеанса, а не на уровне системы. Вы можете запустить его из вашего ~/.xprofile, используя &
for background, или вы можете запустить его из настроек "автозапуска" вашего оконного менеджера (почти все WM имеют некоторые).
Например, если вы используете i3, вы добавляете exec xss-lock xsecurelock
в ~/.i3/config. Или, если вы запускаете все с помощью 'startx', то добавляете xss-lock xsecurelock &
где-нибудь в ~/.xinitrc.
решение2
Как описаноздесь xss-lock
зависает, потому что ждет, DPMS signaling
чтобы сработать. Как сказал пользователь 1686, вам нужно поставить &
после команды в вашем ~/.xinitrc
или ~/.xprofile
(что бы вы ни использовали), чтобы xss-lock
не зависать (иначе вы можете повесить весь сеанс).
Если вы хотите заблокировать вручную, нет смысла использовать xss-lock
. Вы можете использовать xsecurelock
его напрямую из терминала или привязав к клавише в зависимости от вашего DE/WM.
Поэтому имеет смысл использовать xss-lock
для автоматической блокировки из-за бездействия, например. Для этого вам нужно использовать xset
то, что указано в ссылке, которую я разместил. Вот как я это настроил (я использую dm-tool lock
команду LightDM для блокировки сеанса).
~/.xinitrc
# Some other things ...
xset s on
xset s 300 # Signal after 5 minutes / 300 seconds of inactivity
xss-lock dm-tool lock &
# Your's would be xss-lock xsecurelock &
Если я хочу выполнить блокировку непосредственно из терминала, я просто использую dm-tool lock
или устанавливаю сочетание клавиш в конфигурации WM для вызова dm-tool lock
.
Как вы видите, нет никакого xss-lock
использования, кроме блокировки из-за бездействия.