web-dev-qa-db-fra.com

Comment verrouiller sans éteindre l'écran (moniteur)?

En raison d'un bogue récent , je ne peux pas le réactiver à chaque fois que mon écran s'éteint.

Actuellement, l'écran s'éteint une fois l'ordinateur verrouillé, ce qui signifie que je ne peux pas verrouiller mon ordinateur sans le redémarrer complètement.

Y a-t-il un moyen de le verrouiller, mais sans que le moniteur ne se mette en veille?

4
jcora

Si vous avez besoin ou souhaitez une solution qui empêche l'écran de s'endormir, mais que fait ​​assombrit/verrouille l'écran au bout d'un moment, il existe une autre solution: au lieu de l'option propre dim/lock du système, utilisez le script ci-dessous à exécuter en arrière-plan. Vous devrez installer xprintidle.

Comment mettre en place:

  • Désactiver toutes les options d'atténuation/verrouillage dans les paramètres système. (Dans Luminosité et verrouillage ET dans les paramètres "Énergie")

  • installez xprintidle:

    Sudo apt-get install xprintidle
    
  • Trouvez votre pseudo courir dans un terminal:

    xrandr
    

    Recherchez le nom dans la ligne où il est indiqué "connecté". Votre nom d’écran pourrait être par exemple VGA-1 ou DVI-I-1.

  • Copiez le script ci-dessous, définissez le nom d’écran correct, le temps d’inactivité avant de verrouiller/assombrir l’écran, puis collez-le dans un fichier vide. Enregistrez-le sous lock_dim.py

Le ​​script

#!/usr/bin/env python3

import subprocess
import time

seconds = 600 # number of seconds to wait before lock/dim the screen
screen_name = "DVI-I-1" # example, replace it with your screen's name

awake = True

while True:
    curr_idle = subprocess.check_output(["xprintidle"]).decode("utf-8").strip()
    if awake == True:
        if int(curr_idle) > seconds*1000:
            command1 = "gnome-screensaver-command -l"
            command2 = "xrandr --output "+screen_name+" --brightness 0.1"
            subprocess.call(["/bin/bash", "-c", command1])
            subprocess.call(["/bin/bash", "-c", command2])
            awake = False
        else:
            pass
    Elif awake == False:
        if int(curr_idle) > seconds*1000:
            pass
        else:
            command3 = "xrandr --output "+screen_name+" --brightness 1"
            subprocess.call(["/bin/bash", "-c", command3])
            awake = True
    time.sleep(2)

Testez le script en ouvrant un terminal et tapez:

python3 /path/to/lock_dim.py

Si cela fonctionne comme vous le souhaitez, ajoutez-le à vos applications de démarrage: Ouvrez Dash> "Applications de démarrage"> "Ajouter", ajoutez la commande suivante:

python3 /path/to/lock_dim.py
2
Jacob Vlijm