Автор Тема: Блокировка экрана без xscreensaver  (Прочитано 9350 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Блокировка экрана без xscreensaver
« : Ноябрь 14, 2014, 16:25:34 »
Пример для xfce, хотя у меня от xfce лишь панель с аплетами и менеджер питания.
Хотелось избавиться от тяжелого xscreensaver и висящей в трее приблуды  Caffeine.

Уважаемый HsH на конференции Runtu подкинул красивое и легковесное решение:

1) Сносим xscreensaver и Caffeine и устанавливаем крохотный блокировщик экрана   i3lock;

2) Проверяем наличие пакета xfce4-utils (конкретно нужна утилита пакета - xflock4);
В xfce это все есть, а вот в гибридной сборке (Лайт + панель xfce) он не притянулся. Без него не получается связать  блокировщик экрана с менеджером питания ;

3) Так как менеджер питания работает (через xflock4) с slock, а не с i3lock, то создаем обманный скрипт /usr/bin/slock и делаем его исполняемым:

#! /bin/bash
i3lock -c000000
# черный фон.
# Для своей картинки (png) строка такая -  i3lock -i путь/имя.png
      
4) при входе в ждущий режим (по "горячей клавише", закрытой крышке или по времени, определяемом менеджером питания, xflock4 выполняет команду slock


Теперь вторая серия - блокировка экрана по времени без выхода в ждущий режим (замена xscreensaver и Caffeine).

1) Устанавливаем вторую легковесную утилиту - xautolock
2) Прописываем в автозапуске:        xautolock -locker xflock4 -time 20 -corners 0-00

где: 20 - время бездействия в минутах (диапазон допустимых значений 1-60 мин)
       а опция -corners 0-00 заменяет надоевший Caffeine, запрещая блокировку в том случае, если курсор мыши находится в верхнем правом углу. Можно спокойно смотреть фильмы до того момента, пока менеджер питания не загонит комп в ждущий режим :)

При блокировке будет та заставка, что определена командой i3lock


Да, еще.. При выходе из блокировки не будет никаких полей для ввода пароля. Будет тот фон, что определен i3lock . Просто вводите свой пароль. Судя по документации,  i3lock не обращает внимания на регистр и раскладку (у меня не реагирует)


Можно просто установить лишь xautolock. Будет работать по времени и при разблокировке выводить поле для ввода пароля. Как это работает при выходе из ждущего режима я не проверял. Особенно интересен случай, если загоняли в ждущий режим раньше времени срабатывания  xautolock
« Последнее редактирование: Ноябрь 14, 2014, 20:57:42 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 701
    • PuppyRus-Arch
Re: Блокировка экрана без xscreensaver
« Ответ #1 : Ноябрь 14, 2014, 17:14:37 »
Может проще поставить light-locker из репы?

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #2 : Ноябрь 14, 2014, 17:20:30 »
Может и проще, но в официальных репах я эту утилиту не нашел. И второе - она заменяет Caffeine ?
Devuan ASCII x32..x64

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #3 : Ноябрь 26, 2014, 20:32:44 »
В 14.04 всё это уже не работает.
Вместо xflock4 менеджер питания использует новый блокиратор - light-locker.
Для его конфигурации используется - light-locker-settings.

На любимую комбинацию клавиш (для блокировки лишь экрана) заводится команда - light-locker-command -l  (light-locker должен быть активен)

Я не исследовал вопрос пристыковки к screensaver.
Devuan ASCII x32..x64

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 701
    • PuppyRus-Arch
Re: Блокировка экрана без xscreensaver
« Ответ #4 : Ноябрь 27, 2014, 09:10:46 »
light-locker не связан с screensaver. Он связал с lightdm

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #5 : Ноябрь 27, 2014, 11:23:04 »
Он вообще непонятно с чем связан, кривой какой-то. Не могу привязать его к менеджеру питания. Не блокирует. Лучше бы оставили xflock4, он как часики работал.

Классный скринсавер xautolock  тоже перестал работать
« Последнее редактирование: Ноябрь 27, 2014, 11:26:50 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн Roland

  • Прохожий
  • *
  • Сообщений: 2
Re: Блокировка экрана без xscreensaver
« Ответ #6 : Ноябрь 29, 2014, 11:33:11 »
Если установлен lightdm, то ставим на хоткей команду dm-tool --lock
И все, - никаких лишних пакетов и танцев с бубном.

Ман https://www.mankier.com/1/dm-tool

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #7 : Ноябрь 29, 2014, 12:33:35 »
Задача - не просто получить блокировку экрана (с кнопки или через screensaver), а привязать ее к моменту выхода в ждущий режим. То есть - к режимам менеджера питания.
В этот режим система выходит при наступлении трех событий:
1) Нажатие комбинации Fn+F1 (аппаратная комбинация);
2) При закрывании крышки ;
3) По истечению заданного времени бездействия.

Вот и необходимо, чтобы блокировка работала во всех этих вариантах , чего не происходит. Где-то работает (на закрытие крышки), где-то не работает (комбинация Fn+F1), а по времени то срабатывает, то нет.  При этом сам менеджер питания четко все их отрабатывает, загоняя машину в ждущий режим. Почему light-locker не следует своим же настройкам ?? Непонятно. Хотя видно, что в окне light-locker-settings все изменения Менеджера питания четко отслеживаются и повторяются.

Devuan ASCII x32..x64

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #8 : Ноябрь 29, 2014, 16:54:48 »
Переустановил  light-locker и софтину его конфигурации и стабильно заработало в паре с менеджером питания.
Блокировка не работает лишь при выходе в ждущий режим через функциональную клавишу.
Ну да ладно, экран блокируется через  light-locker и по назначенной в обкей клавише, но без ждущего режима.
Devuan ASCII x32..x64

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Блокировка экрана без xscreensaver
« Ответ #9 : Декабрь 12, 2015, 21:34:56 »
Дальнейшие эксперименты. На этот раз с Runtu-xfce 64.
Изначально в нее установлен xfce4-power-manager, который скорее висящее в процессах мертвое тело, так как нормально не работает. Мне не удалось заставить его блокировать экран и изменить в нем время выхода в ждущий режим. Живет он по своим где-то прописанным настройкам и не реагирует на изменения в gui. Поэтому снес, так как не хотелось доустанавливать к нему еще один довесок в виде light-locker и gui к нему.  Да и избыточно все это на стационаре.

Пошел таким путем.
Нужны три легкие утилиты:
dm-tool - уже есть в системе
pm-suspend - доустановить, если нет
xautolock - установить


На нужную комбинацию клавиш заводим (в настройках клавиатуры для вашего DE или obkey для Openbox):

1) Для блокировки экрана - dm-tool lock

2) Для блокировки экрана и выхода в ждущий режим - dm-tool lock && sudo pm-suspend
Если такая строка не прокатит, то пишите и вписываете в настройку скрипт типа такого:
#!/bin/bash
# Блокировка экрана и выход в спящий режим
dm-tool lock &&
# если не прокатит, раскомментируйте команду sleep
#sleep 10
sudo pm-suspend


3) Выход в ждущий режим по времени бездействия (в данном примере 30 мин). Прописываем в автозагрузку:
xautolock -locker 'dm-tool lock && sudo pm-suspend' -time 30 -corners 0-00
параметр -corners 0-00 - отключает действие команды при нахождении курсора мыши в правом верхнем углу (при просмотре фильма, например).

Если у вас применение sudo требует ввода пароля, то для команды sudo pm-suspend прописываем в файл /etc/sudoers разрешение на ее выполнение без ввода пароля:
sudo leafpad /etc/sudoers . Вместо leafpad любой ваш текстовый редактор.
После строки %sudo  ALL=(ALL:ALL) ALL добавляем
user  ALL=NOPASSWD: /usr/sbin/pm-suspend
Вместо user вписываем имя пользователя. Предварительно проверяем нахождение pm-suspend в этом каталоге:
whereis pm-suspend
Если путь не совпадает, вписываем свой.
Сохраняем. Перегружаться и перелогиниваться не надо.
Devuan ASCII x32..x64