
Eu uso o xset para desligar minhas telas assim:
xset dpms force off
Existe alguma maneira de desligar uma única tela quando você tem mais de uma associada ao mesmo monitor X?
Responder1
Se você estiver usando o Ubuntu Desktop padrão, poderá usar Sistema > Preferências > Monitores. Isso deve mostrar todos os seus monitores, clique naquele que deseja desabilitar e, em seguida, use os botões de opção ‘ligar/desligar’ para desabilitar aquele monitor específico.
Se você quiser fazer isso a partir da linha de comando, poderá usar xrandr --output <name> --off
para desabilitar a saída que deve acionar o desligamento do monitor.
Responder2
Problema com 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 no display desligado migrem para o(s) display(s) ativo(s) restante(s).
Brilho baseado em software
Em um laptop você pode controlar o brilho através da placa gráfica controlando o painel LCD. Com TVs e monitores externos, você precisa de uma solução de software para diminuir o brilho para 0. Virá-lo para zero é o mais próximo que cheguei da ilusão de desligá-lo enquanto mantenho as janelas ativas naquele 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ê quiser desativar DP-1-1
o brilho, use:
xrandr --output DP-1-1 --brightness 0
Roteiro de festa da Sony TV
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ê usariasony 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 mudar 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 verde3
para laranja4
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 no 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 de /home/YourUserID/bin
:
- crie o diretório
~/bin
- feche seu terminal e reabra-o.
- o diretório recém-criado está agora no seu caminho.
- todos os scripts que você cria
~/bin
podem ser criados com suas permissões regulares. - para permitir a execução de seus scripts, você só precisa usar
chmod +x
em vez dechmod a+x
(oa
que significa todos os usuários)