Wie kann ich den Bildschirm über SSH von der Befehlszeile aus leeren?

12

Ich brauche eine Möglichkeit, schwarzen Bildschirm durch Ausführen eines Befehls in der Konsole mithilfe einer SSH-Verbindung anzuzeigen. Der Monitor sollte nicht in den Standby-Modus wechseln. Ich brauche nur einen schwarzen Bildschirm, um alles auf dem Bildschirm auszublenden. Der Bildschirm sollte schwarz sein, bis ich einen anderen Befehl gebe, um den Bildschirminhalt anzuzeigen.

Ergänzung: Es wäre gut, wenn der Befehl in Ubuntu, Lubuntu und Xubuntu funktionieren würde.

Zusatz 2: Ich habe auch einen Projektor, der ausgeblendet werden muss. Ich möchte mit SSH eine Verbindung zu meinem Server herstellen und einen leeren Bildschirm anzeigen. Wenn ich versuche, den Projektor auszuschalten, wird auf dem Bildschirm "Kein Signal" angezeigt.

JPX
quelle

Antworten:

16

Kurze Antwort:

xrandr --output DVI-I-1 --brightness 0

Wo DVI-I-1ist der Name Ihres Bildschirms?

Umgekehrt:

xrandr --output DVI-I-1 --brightness 1

um die normale Helligkeit wieder herzustellen.

Um den Namen des Bildschirms zu erhalten

Führen Sie einfach den Befehl aus:

xrandr

In der Ausgabe finden Sie den Namen des Bildschirms in der Zeile einschließlich connected

Kleines Skript, um den Bildschirm entweder abzudunkeln oder auf Normal zurückzusetzen

Das Skript kann verwendet werden, um (alle) verbundenen Bildschirme auf Schwarz zu setzen und umgekehrt. Das Skript findet Ihre Bildschirme automatisch.

#!/usr/bin/env python3
import subprocess
import sys

arg = sys.argv[1]

screens = [l.split()[0] for l in subprocess.check_output("xrandr").decode("utf-8").splitlines()
           if " connected" in l]

val = "0" if arg == "black" else "1"
for s in screens:
    subprocess.Popen(["xrandr", "--output", s, "--brightness", val])

Laufen

  • Kopieren Sie das Skript in eine leere Datei und speichern Sie es unter set_black.py
  • Führen Sie es entweder mit:

    python3 /path/to/set_black.py black
    

    um den Bildschirm abzudunkeln, oder

    python3 /path/to/set_black.py normal
    

    um die Helligkeit wieder auf normal zu stellen.


Während die obige Antwort auf allen lokalen Ubuntu-Distributionen gut funktionieren sollte , stellt sich heraus, dass sich die Frage auf ssh / remote befindet (die Informationen wurden in die Frage eingearbeitet).

In einer entfernten Situation müssten wir die $DISPLAYVariable richtig einstellen . Wenn die Anzeigevariable zB ist :0, müssten wir das Skript ausführen mit:

DISPLAY=:0 python3 /path/to/script.py black

Die Variable ist jedoch nicht unbedingt erforderlich :0. Dieser Beitrag zu U & L scheint ein ausgezeichneter Beitrag zu sein, bei dem die DISPLAYVariable auf dem Remote-Computer festgelegt wurde.

Jacob Vlijm
quelle
Aber müssten Sie den Befehl nicht blind eingeben, um ihn zurückzubringen?
You'reAGitForNotUsingGit
@ AndroidDev Ich nehme an, dass das Skript ist.
Jacob Vlijm
2
@JacobVlijm Es scheint, dass 'DISPLAY =: 0 xrandr' und 'DISPLAY =: 0 xrandr --output HDMI1 --brightness 0' funktionieren. Vielen Dank!
JPX
1
Aber ich habe mein Skript auf + x
Terrance am
1
@ JPX Ich würde den vollständigen Pfad verwenden, da wir nicht wissen, wo wir sind :)
Jacob Vlijm
3

Bearbeiten: Die Frage wurde geändert, seit ich diese Antwort zur Verfügung gestellt hatte. Ich werde diese Antwort stehen lassen, da sie einige Informationen enthält, die von Nutzen sein können.

Wenn Sie mit Konsole eine der virtuellen Konsolen mit Zeichenzellen meinen, installieren Sie Folgendes vlock:

sudo apt-get -y install vlock

Sie können dann Ihre virtuelle Konsole verdunkeln und sperren:

vlock

Beim Entsperren der Konsole wird der Bildschirm nicht wiederhergestellt. Wenn Sie den Bildschirminhalt nicht verlieren möchten, empfehle ich, sich bei einer zweiten Konsole anzumelden. Wenn Sie den Bildschirm sperren möchten, gehen Sie zu dieser zweiten Konsole und geben Sie ein

vlock -a

Dadurch werden alle Konsolen gesperrt und das Wechseln der Konsole verhindert. Nach dem Entsperren der Konsolen können Sie zur Hauptarbeitskonsole zurückkehren und den Bildschirminhalt intakt finden.

AlexP
quelle
Eine bessere Option, um die vorherige Sitzung wiederherzustellen, ist die Verwendung eines Terminal-Multiplexers wie tmux oder screen und das Trennen der Sitzung, das Sperren der Konsole und das erneute Verbinden mit der vorherigen Sitzung. Bonus: Sie können sich abmelden oder die Verbindung vollständig trennen und die Sitzung später fortsetzen.
David Foerster
2

Einfach ausführen:

gnome-screensaver-command -a

Hinweis: Dadurch wird auch der Sperrbildschirm aufgerufen, es sei denn, Sie deaktivieren die Option "Sperren" in den Systemeinstellungen:

Bildbeschreibung hier eingeben

You'reAGitForNotUsingGit
quelle
Dadurch wird auch der Sperrbildschirm aufgerufen.
Jacob Vlijm
@JacobVlijm - Für mich nicht.
You'reAGitForNotUsingGit
@ AndroidDev Das ist komisch, Ubuntu 16.04 hier.
Jacob Vlijm
Dies hängt davon ab, wie Sie "Systemeinstellungen → Helligkeit & Sperre" konfiguriert haben. Die Einstellungen "Sperre EIN / AUS" und "Bildschirm sperren nach ..." steuern das Verhalten.
Byte Commander
@JacobVlijm - Bearbeitet
You'reAGitForNotUsingGit