Рейтинг:8

Как я могу отложить (но не отключить) блокировку экрана при приостановке/закрытии крышки?

флаг cn

Я хотел бы, чтобы мой экран автоматически блокировался, когда я закрываю крышку (или иным образом запускаю приостановку), но только если я оставлю его закрытым на определенное время, например. 5 минут. То есть, если я закрою крышку, а затем открою ее через 1 минуту, я бы хотел, чтобы экран не был заблокирован, но если я открою крышку через 10 минут, он должен быть заблокирован. Есть ли способ настроить это в Ubuntu (GNOME)?

Я вижу несколько похожих вопросов, но ни один из них не описывает то, что я ищу. Я по-прежнему хочу, чтобы ноутбук сразу же приостанавливался, когда крышка закрывается, я просто не хочу, чтобы он блокировался, если крышка не остается закрытой в течение определенного времени. (В идеале он должен подчиняться той же настройке «Задержка автоматической блокировки экрана», которая используется, когда крышка открыта.)

Один из способов, который я мог бы представить для реализации этого, — запускать сценарии при приостановке и пробуждении. Сценарий приостановки будет просто записывать отметку времени для приостановки, а сценарий пробуждения будет проверять, сколько лет отметке времени, и на ее основе решать, блокировать или разблокировать экран. Тем не менее, я предполагаю, что мне нужно будет настроить эти сценарии для запуска от имени моего пользователя (т. это возможно реализовать.

флаг vn
Вы пытались отключить поведение по умолчанию и [добавить скрипт в `/etc/acpi/`](https://askubuntu.com/a/670963/349837)?
флаг cn
@PabloBianchi Это может помочь, но я понимаю, что этот скрипт будет работать от имени пользователя root и не будет иметь никаких переменных среды, которые связывают его с моим сеансом входа в систему, поэтому я до сих пор не уверен, как я могу использовать его для реализации поведения Я ищу.
Рейтинг:1
флаг cn

Я понял, как это сделать. Я написал скрипт Python, который прослушивает сигналы DBus, указывающие на приостановку и блокировку экрана. Когда оба сигнала возникают в течение короткого промежутка времени, сценарий предполагает, что это событие приостановки, которое вызвало событие блокировки экрана. Затем он ожидает сигнала, указывающего на возобновление работы. Если время, прошедшее с момента приостановки, составляет менее 5 минут, заставка принудительно разблокируется без запроса пароля. Кроме того, он разблокирует экран только в том случае, если крышка была закрыта во время отправки сигнала приостановки (таким образом, предположительно указывая на приостановку, вызванную закрытием крышки), поэтому приостановка вручную из меню не приведет к запуску сценария. Это гарантирует, что экран не будет разблокирован после ручной блокировки пользователем.

Вы можете найти скрипт здесь: https://gist.github.com/DarwinAwardWinner/77e8acea2f14ed9ea66d7222d7ace500

Я сохранил скрипт в ~/.локальные/бин/, сделал его исполняемым и настроил сценарий для запуска в фоновом режиме, когда я вхожу в систему с помощью программы настройки запускаемых приложений, как показано здесь:

Запись запуска приложения для shortsleep-unlock.py

я также использовал беги-один-постоянно от беги-один package для автоматического перезапуска скрипта, если он по какой-либо причине выйдет из строя. Когда этот скрипт работает, я получаю именно то поведение, которое хочу: если я закрою крышку, а затем открою ее через минуту, экран разблокируется без необходимости вводить пароль. Но если я оставляю крышку закрытой более чем на 5 минут, или если я подвешиваю ноутбук, не закрывая крышку, то при открытии крышки он требует пароль. Вы можете настроить как ограничение по времени, так и требования к крышке, отредактировав скрипт (осмотрите строку 100).

В текущем виде скрипт работает только с заставкой GNOME. Тем не менее, не должно быть очень сложно адаптировать его к KDE или другим программам блокировки экрана, если они предоставляют соответствующие сигналы и методы DBus.

Важное примечание по безопасности: Я сделал все возможное, чтобы обработать все крайние случаи, о которых только мог подумать, но всегда есть вероятность, что я не смог предвидеть какой-либо способ запуска разблокировки даже после истечения срока. Поэтому не используйте этот сценарий, если у вас есть опасения по поводу безопасности, если только вы не потратите время на его проверку самостоятельно.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.