A tela não desliga quando inativa

10

Recentemente, notei que as configurações de brilho e bloqueio para desativar a tela após um período de inatividade estão sendo ignoradas.

Eu tenho minhas configurações em 1 minuto e bloqueio a tela quando a tela é desativada, mas meu computador nunca parece desligar a tela.

Já vi perguntas semelhantes em que as pessoas notam um problema em que as telas são ativadas novamente e a tela de bloqueio está sendo exibida, mas não consigo bloquear o computador.

    
por Joe W 12.04.2017 / 20:01

1 resposta

0

Eu posso oferecer uma solução alternativa para isso

Não importa as configurações na GUI, você pode bloquear sua tela e enviar suas telas para o modo de espera por meio da linha de comando

Para bloquear sua tela, você pode usar

gnome-screensaver-command -l

ou (se não usar o gnome3)

xdg-screensaver lock

e para desligar seus monitores (standby) você pode usar

xset dpms force off

Agora, como você não quer fazer isso manualmente, mas depois de alguns minutos de inatividade, precisamos descobrir há quanto tempo você está inativo. Isso pode ser feito com xprintidle

sudo apt-get install xprintidle

xprintidle retornará milissegundos de (xserver) idletime

Agora, vamos combinar isso em um script (*). Use o seu editor favorito para copiar / colar o seguinte, modificando o IDLE_TIME ao seu gosto

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

Em seguida, torne-o executável com

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Você pode testá-lo na linha de comando

/home/yourusername/idle_stby_lock_screen.sh

se você está satisfeito com ele, você pode adicioná-lo à inicialização do seu Ubuntu, como descrito nestas respostas aqui ou com o aplicativo "Startup" no Ubuntu - apenas certifique-se de usar o caminho absoluto para o seu script.

    
por Robert Riedl 08.02.2018 / 11:31