Я можу запропонувати це вирішити
Незважаючи на налаштування в графічному інтерфейсі, ви можете заблокувати екран і відправити екрани в режим очікування за допомогою командного рядка
Щоб заблокувати екран, ви могли використовувати
gnome-screensaver-command -l
або (якщо не використовувати gnome3)
xdg-screensaver lock
і вимкнути монітори (у режимі очікування), які ви могли використовувати
xset dpms force off
Тепер, оскільки ви не хочете робити це вручну, але через пару хвилин простою, ми повинні з'ясувати, як довго ви простоюєте. Це можна зробити за допомогоюxprintidle
sudo apt-get install xprintidle
xprintidle
поверне мілісекунд (xserver) простою
Тепер давайте об’єднаємо це у сценарій (*). Використовуйте свій улюблений редактор, щоб скопіювати / вставити наступне, змінивши IDLE_TIME
на свій смак
nano /home/yourusername/idle_stby_lock_screen.sh
#!/bin/sh
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like
# Sequence to execute when timeout triggers.
trigger_cmd() {
echo "Triggered action $(date)"
}
sleep_time=$IDLE_TIME
triggered=false
while sleep $(((sleep_time+999)/1000)); do
idle=$(xprintidle)
if [ $idle -ge $IDLE_TIME ]; then
if ! $triggered; then
gnome-screensaver-command -l
export DISPLAY=:0; xset dpms force off
triggered=true
sleep_time=$IDLE_TIME
fi
else
triggered=false
# Give 150 ms buffer to avoid frantic loops shortly before triggers.
sleep_time=$((IDLE_TIME-idle+150))
fi
done
Потім зробіть його виконуваним за допомогою
chmod +x /home/yourusername/idle_stby_lock_screen.sh
Ви можете перевірити його в командному рядку
/home/yourusername/idle_stby_lock_screen.sh
якщо ви вмістуєтесь з ним, ви можете додати його до запуску вашого Ubuntu, як описано в цих відповідях тут, або за допомогою програми "Запуск" в Ubuntu - просто переконайтеся, що ви використовуєте абсолютний шлях до свого сценарію.