Створіть файл у /lib/systemd/system-sleep/
назві, наприклад lightdm
:
sudo touch /lib/systemd/system-sleep/lightdm
зробіть цей файл виконуваним:
sudo chmod +x /lib/systemd/system-sleep/lightdm
Кожен раз, коли ви "призупиняєте" або "поновлюєте" Ubuntu, цей сценарій буде запущений.
Відкрийте його за допомогою потрібного текстового редактора, наприклад: sudo nano /lib/systemd/system-sleep/lightdm
і вставте в нього ці рядки, а потім збережіть:
#!/bin/sh
set -e
case "$1" in
pre)
#Store current timestamp (while suspending)
/bin/echo "$(date +%s)" > /tmp/_suspend
;;
post)
#Compute old and current timestamp
oldts="$(cat /tmp/_suspend)"
ts="$(date +%s)"
#Prompt for password if suspended > 10 minutes
if [ $((ts-oldts)) -ge 600 ];
then
export XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
/usr/bin/dm-tool lock
fi
/bin/rm /tmp/_suspend
;;
esac
Що це робить?
Коли ви переводите Ubuntu в режим "сну", цей скрипт збереже поточні часові позначки, тоді при відновленні системи він перевірятиме старі часові позначки з поточним, якщо інше було більше, ніж "600" секунд (10 хвилин), це буде показано ви "lightdm" заблокований екран інакше нічого не робить.
Останній крок:
відкрийте "Налаштування системи" -> "Яскравість і блокування". Вимкнути запитування пароля після пробудження від призупинення, оскільки ми залишаємо обробку екрана блокування сценарієм.
Після перезавантаження або відключення все одно потрібно ввести свій пароль.