Я понял, как это сделать. Я написал скрипт Python, который прослушивает сигналы DBus, указывающие на приостановку и блокировку экрана. Когда оба сигнала возникают в течение короткого промежутка времени, сценарий предполагает, что это событие приостановки, которое вызвало событие блокировки экрана. Затем он ожидает сигнала, указывающего на возобновление работы. Если время, прошедшее с момента приостановки, составляет менее 5 минут, заставка принудительно разблокируется без запроса пароля. Кроме того, он разблокирует экран только в том случае, если крышка была закрыта во время отправки сигнала приостановки (таким образом, предположительно указывая на приостановку, вызванную закрытием крышки), поэтому приостановка вручную из меню не приведет к запуску сценария. Это гарантирует, что экран не будет разблокирован после ручной блокировки пользователем.
Вы можете найти скрипт здесь: https://gist.github.com/DarwinAwardWinner/77e8acea2f14ed9ea66d7222d7ace500
Я сохранил скрипт в ~/.локальные/бин/
, сделал его исполняемым и настроил сценарий для запуска в фоновом режиме, когда я вхожу в систему с помощью программы настройки запускаемых приложений, как показано здесь:

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