Desliga automaticamente a tela interna se uma tela externa estiver conectada
Isso pode ser feito facilmente executando um pequeno script de segundo plano (iniciado automaticamente na inicialização (login).
O que faz
O script irá desligar automaticamente a tela interna se a sua TV (ou qualquer outra tela secundária) estiver conectada. Se você quer que ele trabalhe apenas para uma tela externa específica , por favor mencione.
O script
#!/usr/bin/env python3
import subprocess
import time
# --- set your internal screen below (the example is my primary screen)
internal = "DVI-I-1"
#---
# don't change anything below
scr_info1 = 0
while True:
time.sleep(4)
# read the current screen setup from xrandr
get_screens = subprocess.check_output("xrandr").decode("utf-8").splitlines()
scr_data = [l for l in get_screens if " connected " in l]
# count the number of connected screens
scr_info2 = len(scr_data)
# if the number of connected screens changes,
# switch off the internal one if there are two screens
if scr_info2 != scr_info1:
if scr_info2 == 2:
ext = [s.split()[0] for s in scr_data if not internal in s][0]
subprocess.Popen(["xrandr", "--output", internal, "--off", "--output", ext, "--auto"])
scr_info1 = scr_info2
Como configurar
- Copie o script abaixo em um arquivo vazio, salve-o como
switch_screens.py
- Na seção principal do seu script, defina o nome da tela interna . Para descobrir, abra uma janela de terminal e execute o comando
xrandr
(nenhuma tela externa conectada) A linha com "conectado" mostra o nome da sua tela na primeira string, parecida com:VGA-1
ou algo parecido . -
Teste-o abrindo uma janela de terminal e digite o comando:
python3 /path/to/switch_screens.py
Enquanto o script é executado, conecte sua TV, espere a tela interna alternar e desconectar novamente.
-
Se tudo funcionar bem, adicione o comando abaixo para Startup Applications: open Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
/bin/bash -c "sleep 15 && python3 /path/to/switch_screens.py"
Efetue o logout e a devolução. Agora, sua tela interna será desligada automaticamente se uma tela externa estiver conectada.