Jak mogę wyłączyć ekran z wiersza poleceń za pośrednictwem SSH?

12

Potrzebuję sposobu, aby wyświetlić czarny ekran, uruchamiając polecenie w konsoli za pomocą połączenia SSH. Monitor nie powinien przejść w tryb gotowości. Potrzebuję tylko czarnego ekranu, aby ukryć wszystko, co jest na ekranie. Ekran powinien być czarny, dopóki nie wydam innego polecenia, aby wyświetlić zawartość ekranu.

Dodanie: Byłoby dobrze, gdyby polecenie działało w Ubuntu, Lubuntu i Xubuntu.

Dodatek 2: Mam również projektor, który wymaga wygaszenia. Chcę użyć SSH, aby połączyć się z moim serwerem i wyświetlić pusty ekran. Jeśli spróbuję wyłączyć projektor, na ekranie pojawi się komunikat „Brak sygnału”.

JPX
źródło

Odpowiedzi:

16

Krótka odpowiedź:

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

gdzie DVI-I-1jest nazwa twojego ekranu.

Odwrotnie:

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

aby ponownie ustawić normalną jasność.

Aby uzyskać nazwę ekranu

Po prostu uruchom polecenie:

xrandr

Na wyjściu znajdziesz nazwę ekranu, w wierszu, w tym connected

Mały skrypt, aby przyciemnić ekran lub przywrócić go do normy

Skryptu można użyć do ustawienia (wszystkich) podłączonych ekranów na czarny i odwrotnie. Skrypt automatycznie wyszukuje ekrany.

#!/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])

Biegać

  • Skopiuj skrypt do pustego pliku i zapisz go jako set_black.py
  • Uruchom to z:

    python3 /path/to/set_black.py black
    

    przyciemnić ekran lub

    python3 /path/to/set_black.py normal
    

    aby ponownie ustawić normalną jasność.


Podczas gdy powyższa odpowiedź powinna działać poprawnie na wszystkich dystrybucjach Ubuntu lokalnie , pytanie okazuje się być na ssh / remote (informacje zostały edytowane w pytaniu).

W przypadku odległej sytuacji musimy $DISPLAYpoprawnie ustawić zmienną. Jeśli zmienną wyświetlaną jest np. :0, Musielibyśmy uruchomić skrypt z:

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

Zmienna nie jest jednak koniecznie :0. Ten post na U&L wydaje się być doskonałym zestawem DISPLAYzmiennej na zdalnym komputerze.

Jacob Vlijm
źródło
Ale czy nie musisz ślepo pisać polecenia, aby je przywrócić?
You'reAGitForNotUsingGit
@AndroidDev Zakładam, że jest skryptowany.
Jacob Vlijm
2
@JacobVlijm Wygląda na to, że „DISPLAY =: 0 xrandr” i „DISPLAY =: 0 xrandr --output HDMI1 - jasność 0” działają. Dzięki!
JPX
1
Ale ustawiłem skrypt na + x
Terrance
1
@JPX Użyłbym pełnej ścieżki, ponieważ nie wiemy, gdzie jesteśmy :)
Jacob Vlijm
3

Edycja: Pytanie zostało zmienione, odkąd podałem tę odpowiedź. Pozwolę sobie na tę odpowiedź, ponieważ zawiera ona pewne informacje, które mogą być przydatne.

Jeśli przez konsolę rozumiesz jedną z wirtualnych konsol znakowo-komórkowych, zainstaluj vlock:

sudo apt-get -y install vlock

Następnie możesz zaciemnić i zablokować wirtualną konsolę:

vlock

Po odblokowaniu konsoli ekran nie jest przywracany. Jeśli nie chcesz stracić zawartości ekranu, sugeruję zalogować się do drugiej konsoli; gdy chcesz zablokować przesunąć ekran w tej drugiej konsoli i wpisać

vlock -a

Spowoduje to zablokowanie wszystkich konsol i zapobiegnie zmianie konsoli. Po odblokowaniu konsol możesz wrócić do głównej konsoli roboczej i znaleźć nienaruszoną zawartość ekranu.

AlexP
źródło
Lepszą opcją jest przywrócenie poprzedniej sesji, aby użyć multipleksera terminala, takiego jak tmux lub screen, i odłączyć sesję, zablokować konsolę, a następnie ponownie podłączyć do poprzedniej sesji. Bonus: możesz się całkowicie wylogować lub rozłączyć i nadal wznawiać sesję później.
David Foerster,
2

Po prostu uruchom:

gnome-screensaver-command -a

Uwaga: spowoduje to również wywołanie ekranu blokady, chyba że wyłączysz opcję „Blokuj” w ustawieniach systemu:

wprowadź opis zdjęcia tutaj

You'reAGitForNotUsingGit
źródło
Spowoduje to również wywołanie ekranu blokady.
Jacob Vlijm
@JacobVlijm - To nie dla mnie.
You'reAGitForNotUsingGit
@ AndroidDev To dziwne, tutaj Ubuntu 16.04.
Jacob Vlijm
Zależy to od konfiguracji „Ustawienia systemu → Jasność i blokada”. Ustawienie „Zablokuj ON / OFF” i „Zablokuj ekran po ...” kontroluje zachowanie.
Bajt Dowódca
@JacobVlijm - Edytowane
You'reAGitForNotUsingGit