L'écran ne s'éteint pas lorsqu'il est inactif

11

Récemment, j'ai remarqué que les paramètres de luminosité et de verrouillage pour éteindre l'écran après une période d'inactivité sont ignorés.

J'ai mes paramètres à 1 minute et pour verrouiller l'écran lorsque l'écran s'éteint mais mon ordinateur ne semble jamais éteindre l'écran.

J'ai vu des questions similaires où les gens notent un problème où les écrans se rallument et l'écran de verrouillage s'affiche, mais je n'arrive pas du tout à verrouiller l'ordinateur.

entrez la description de l'image ici

Joe W
la source

Réponses:

1

Je peux proposer une solution à ce problème


Peu importe les paramètres de l'interface graphique, vous pouvez verrouiller votre écran et envoyer vos écrans en veille via la ligne de commande


Pour verrouiller votre écran, vous pouvez utiliser

gnome-screensaver-command -l

ou (si n'utilisez pas gnome3)

xdg-screensaver lock

et pour éteindre vos moniteurs (veille), vous pouvez utiliser

xset dpms force off

Maintenant, puisque vous ne voulez pas le faire manuellement, mais après quelques minutes d'inactivité, nous devons savoir depuis combien de temps vous êtes inactif. Cela peut être fait avecxprintidle

sudo apt-get install xprintidle

xprintidle renverra des millisecondes de (xserver) idletime

Maintenant, combinons cela dans un script (*). Utilisez votre éditeur préféré pour copier / coller ce qui suit, en modifiant le IDLE_TIMEà votre guise

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

Rendez-le ensuite exécutable avec

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Vous pouvez le tester sur la ligne de commande

/home/yourusername/idle_stby_lock_screen.sh

si vous en êtes satisfait, vous pouvez l'ajouter au démarrage de votre Ubuntu, comme décrit dans ces réponses ici ou avec l'application "Démarrage" dans Ubuntu - assurez-vous simplement d'utiliser le chemin absolu de votre script.

Robert Riedl
la source
Bien que cette solution fonctionne, je ne sais pas à quel point elle est viable lorsque le verrouillage d'écran / économiseur d'écran est censé être une fonction intégrée d'Ubuntu.
Joe W
@JoeW, comme je l'ai dit: une solution
Robert Riedl
Aussi, j'utilise ceci pour m'assurer que mes écrans restent en veille, car parfois ils se réveillent, pour une raison quelconque ...
Robert Riedl