Wie sperren, ohne den Bildschirm (Monitor) auszuschalten?


5

Aufgrund eines kürzlich aufgetretenen bug kann ich meinen Bildschirm bei jedem Ausschalten nicht wieder einschalten.

Derzeit wird der Bildschirm ausgeschaltet, nachdem der Computer gesperrt wurde. Dies bedeutet effektiv, dass ich meinen Computer nicht sperren kann, ohne ihn vollständig neu starten zu müssen.

Gibt es eine Möglichkeit, es zu sperren, ohne dass der Monitor in den Ruhezustand wechselt?

-2

Go to System preferences > Brightness & lock, then change "Turn Screen off when inactive" to Never.

Now click on setting icon from top right click on you account username your screen will be locked and never sleep.


2

If you need or want a solution that prevents the screen to fall asleep, but that does dim/lock the screen after a while, there is another solution: instead of the system's own dim/lock option, use the script below to run in the background. You will need to install xprintidle.

How to set up:

  • Disable all dim / lock options in System Settings. (In Brightness & lock AND in "Energy" settings)

  • install xprintidle:

    sudo apt-get install xprintidle
    
  • Find your screen name; run in a terminal:

    xrandr
    

    Look for the name in the line where it says "connected". Your screen name could be for example VGA-1 or DVI-I-1.

  • Copy the script below, set the correct screen_name, the idle time before it should lock/dim the screen, and paste it into an empty file. Save it aslock_dim.py

The 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)

Test the script by opening a terminal and type:

python3 /path/to/lock_dim.py

If it works as you like, add it to your startup applications: Open Dash > "Startup Applications" > "Add", add the command:

python3 /path/to/lock_dim.py