xss-lock, loginctl lock-sessions, xsecurelock не работают вместе в Arch

xss-lock, loginctl lock-sessions, xsecurelock не работают вместе в Arch

У меня установлен 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использования, кроме блокировки из-за бездействия.

Связанный контент