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-1
desativar 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 xrandr
nome 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 setaf
alterar 1
para:
2
para verde
3
para laranja
4
para azul, etc.
Modificando e instalando script
Altere as duas ocorrências de HDMI-0
para corresponder ao seu nome de tela. Você pode obter uma lista de todas as suas telas digitando xrandr
no 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/bin
vs~/bin
Ao criar scripts, /usr/local/bin
você deve usar sudo
poderes. Uma alternativa melhor é usar o diretório ~/bin
que é 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
~/bin
podem ser criados com suas permissões regulares.
- para permitir a execução de seus scripts, você só precisa usar em
chmod +x
vez de chmod a+x
(o a
significado para todos os usuários)