Lo schermo non si spegne se inattivo

10

Recentemente ho notato che le impostazioni di luminosità e blocco per spegnere lo schermo dopo un periodo di inattività vengono ignorate.

Ho le mie impostazioni a 1 minuto e per bloccare lo schermo quando lo schermo si spegne, ma il mio computer non sembra mai spegnere lo schermo.

Ho visto domande simili in cui le persone notano un problema in cui le schermate si riaccendono e viene visualizzata la schermata di blocco, ma non riesco a bloccare affatto il computer.

    
posta Joe W 12.04.2017 - 20:01

1 risposta

0

Posso offrire una soluzione alternativa a questo

Non preoccuparti delle impostazioni della GUI, puoi bloccare lo schermo e inviare gli schermi in modalità standby tramite la riga di comando

Per bloccare lo schermo puoi usare

gnome-screensaver-command -l

o (se non usi gnome3)

xdg-screensaver lock

e per spegnere i monitor (standby) che potresti usare

xset dpms force off

Ora, dal momento che non vuoi farlo manualmente, ma dopo un paio di minuti di inattività, dobbiamo scoprire quanto tempo sei rimasto inattivo. Questo può essere fatto con xprintidle

sudo apt-get install xprintidle

xprintidle restituirà i millisecondi dell'ideale (xserver)

Ora, combiniamo questo in uno script (*). Usa il tuo editor preferito per copiare / incollare quanto segue, modificando IDLE_TIME a tuo piacimento

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

Quindi rendilo eseguibile con

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Puoi testarlo sulla linea di comando

/home/yourusername/idle_stby_lock_screen.sh

se ti accontenti, puoi aggiungerlo all'avvio di Ubuntu, come descritto in queste risposte qui o con l'app "Startup" in Ubuntu - assicurati di utilizzare il percorso assoluto per il tuo script.

    
risposta data Robert Riedl 08.02.2018 - 11:31

Leggi altre domande sui tag