Problema com a resposta existente
Embora tenha havido uma resposta há sete anos com três votos positivos, ela não foi aceita porque faz com que todas as janelas abertas na tela de desligamento migrem para as telas ativas restantes.
Brilho baseado em software
Em um laptop, você pode controlar o brilho através da placa gráfica que controla o painel LCD. Com TVs e monitores externos, você precisa de uma solução de software para reduzir o brilho a 0. Girar para zero é o mais próximo que cheguei à ilusão de desligá-lo, mantendo as janelas ativas no monitor externo.
Versão curta
Na linha de comando (sem scripts), use:
$ xrandr | grep " connected"
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1107mm x 623mm
eDP-1-1 connected primary 1920x1080+3840+2160 (normal left inverted right x axis y axis) 382mm x 215mm
DP-1-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 1600mm x 900mm
Isso mostra a lista de nomes de monitores atribuídos por xrandr. Agora, se você deseja DP-1-1desativar o brilho, use:
xrandr --output DP-1-1 --brightness 0
Script bash da TV Sony
Aqui está um dos três scripts que escrevi:
#!/bin/bash
# NAME: sony
# PATH: /mnt/e/bin
# DESC: Set brightness of Sony TV
# DATE: Dec 9, 2017.
if [[ $# -ne 1 ]]; then
xrandr --verbose | grep -A5 "^HDMI-0" > /tmp/sony
head -n1 /tmp/sony
echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
rm /tmp/sony
echo 'One argument required for brightness level, e.g. "sony .63"'
echo 'will set brightness level of Sony TV to level .63 using xrandr'
exit 1
fi
xrandr --output HDMI-0 --brightness "$1"
Para desligar a tela, você usaria sony 0
Chamando script sem parâmetros
Quando você chama o script sem parâmetros, ele exibe o xrandrnome da tela junto com o brilho atual em vermelho. Você pode alterar a cor vermelha para outra modificando esta linha:
echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
Depois de setafalterar 1para:
2 para verde
3 para laranja
4 para azul, etc.
Modificando e instalando script
Altere as duas ocorrências de HDMI-0para corresponder ao seu nome de tela. Você pode obter uma lista de todas as suas telas digitando xrandrno terminal.
Coloque o script em um diretório em seu caminho, como:
/usr/local/bin/sony
Marque o script como executável usando:
sudo chmod a+x /usr/local/bin/sony
Escolhendo qual diretório: /usr/local/binvs~/bin
Ao criar scripts, /usr/local/binvocê deve usar sudopoderes. Uma alternativa melhor é usar o diretório ~/binque é uma abreviação para /home/YourUserID/bin:
- crie o diretório
~/bin
- feche o seu terminal e reabra-o.
- o diretório recém-criado está agora no seu caminho.
- todos os scripts em que você cria
~/binpodem ser criados com suas permissões regulares.
- para permitir a execução de seus scripts, você só precisa usar em
chmod +xvez de chmod a+x(o asignificado para todos os usuários)