Экран не выключается, когда неактивен

11

Недавно я заметил, что настройки яркости и блокировки для отключения экрана после периода бездействия игнорируются.

У меня есть настройки на 1 минуту и ​​для блокировки экрана, когда экран выключается, но мой компьютер, кажется, никогда не выключает экран.

Я встречал похожие вопросы, когда люди отмечали проблему, при которой снова включаются экраны и отображается экран блокировки, но у меня вообще не получается блокировать компьютер.

введите описание изображения здесь

Джо У
источник

Ответы:

1

Я могу предложить обходной путь к этому


Не берите в голову настройки в графическом интерфейсе, вы можете заблокировать экран и отправить его в режим ожидания через командную строку


Для блокировки экрана вы можете использовать

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 - просто убедитесь, что вы используете абсолютный путь к вашему сценарию.

Роберт Ридл
источник
Хотя это решение будет работать, я не уверен, насколько оно жизнеспособно, когда блокировка экрана / хранитель экрана считается встроенной функцией Ubuntu.
Джо W
@JoeW, как я уже сказал: обходной путь
Роберт Ридл
Кроме того, я использую это, чтобы убедиться, что мои экраны остаются в режиме ожидания, потому что иногда они просыпаются по любой причине ...
Роберт Ридл