Como posso deixar a tela em branco na linha de comando sobre SSH?

12

Eu preciso de uma maneira de mostrar a tela preta executando o comando no console usando a conexão SSH. O monitor não deve entrar em modo de espera. Só preciso de uma tela preta para ocultar tudo o que está na tela. A tela deve ficar preta até eu dar outro comando para mostrar o conteúdo da tela.

Adição: seria bom se o comando funcionasse no Ubuntu, Lubuntu e Xubuntu.

Adição 2: Eu também tenho um projetor que precisa ser apagado. Eu quero usar o SSH para conectar ao meu servidor e mostrar a tela em branco. Se eu tentar desligar o projetor, "Sem sinal" será exibido na tela.

JPX
fonte

Respostas:

16

Resposta curta:

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

Onde DVI-I-1está o nome da sua tela.

O contrário:

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

para definir o brilho normal novamente.

Para obter o nome da tela

Basta executar o comando:

xrandr

Na saída, você encontrará o nome da tela, na linha, incluindo connected

Script pequeno para escurecer a tela ou voltar ao normal

O script pode ser usado para definir (todas) as telas conectadas para preto e vice-versa. O script encontra suas telas automaticamente.

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

Para correr

  • Copie o script em um arquivo vazio, salve-o como set_black.py
  • Execute-o com:

    python3 /path/to/set_black.py black
    

    para escurecer a tela ou

    python3 /path/to/set_black.py normal
    

    para ajustar o brilho ao normal novamente.


Embora a resposta acima deva funcionar bem em todas as distros do Ubuntu localmente , a pergunta acaba sendo no ssh / remote (as informações foram editadas na pergunta).

No caso de uma situação remota, precisaríamos definir a $DISPLAYvariável corretamente. Se a variável de exibição for :0, por exemplo , precisaríamos executar o script com:

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

A variável não é necessariamente :0embora. Este post sobre U&L parece excelente para definir a DISPLAYvariável na máquina remota.

Jacob Vlijm
fonte
Mas você não precisaria digitar cegamente o comando para trazê-lo de volta?
You'reAGitForNotUsingGit
@AndroidDev Eu assumo que está com script.
Jacob Vlijm 4/17/17
2
@JacobVlijm Parece que 'DISPLAY =: 0 xrandr' e 'DISPLAY =: 0 xrandr --output HDMI1 --brightness 0' estão funcionando. Obrigado!
JPX
1
Mas eu definir o meu script para + x
Terrance
1
@JPX eu usaria o caminho completo, uma vez que não sabemos onde estamos :)
Jacob Vlijm
3

Edit: A pergunta foi alterada desde que eu forneci esta resposta. Deixarei que esta resposta permaneça, pois fornece algumas informações que podem ser úteis.

Se por console você se referir a um dos consoles virtuais da célula de caracteres, instale vlock:

sudo apt-get -y install vlock

Você pode ocultar e bloquear seu console virtual:

vlock

Ao desbloquear o console, a tela não é restaurada. Se você não quiser perder o conteúdo da tela, sugiro fazer login em um segundo console; quando você quiser bloquear a tela, vá para o segundo console e insira

vlock -a

Isso bloqueará todos os consoles e impedirá a troca do console. Depois de desbloquear os consoles, você pode voltar ao console de trabalho principal e encontrar o conteúdo da tela intacto.

AlexP
fonte
Uma opção melhor para restaurar a sessão anterior é usar um multiplexador de terminal como tmux ou screen e desanexar a sessão, bloquear o console e reconectar à sessão anterior. Bônus: você pode sair ou desconectar completamente e continuar a sessão mais tarde.
precisa
2

Basta executar:

gnome-screensaver-command -a

Nota: Isso também chamará a tela de bloqueio, a menos que você desative a opção "Bloquear" nas configurações do sistema:

insira a descrição da imagem aqui

Você éAGitForNotUsingGit
fonte
Isso também chamará a tela de bloqueio.
Jacob Vlijm 4/17/17
@JacobVlijm - Não é para mim.
You'reAGitForNotUsingGit
@ AndroidDev Isso é estranho, Ubuntu 16.04 aqui.
Jacob Vlijm 4/17/17
Depende de como você configurou "Configurações do sistema → Brilho e bloqueio". A configuração "Bloquear ON / OFF" e "Bloquear tela após ..." controlam o comportamento.
Byte Commander
@JacobVlijm - Editado
AGitForNotUsingGit