O problema que o layout da tela não cola é provavelmente o resultado de um pequeno bug, no entanto:
Você tem duas opções :
1. Execute um script de segundo plano para executar seu comando automaticamente quando a segunda tela estiver conectada:
#!/usr/bin/env python3
import subprocess
import time
#--- set both commands (connect / disconnect) below
connect_command = "gedit"
disconnect_command = ""
#---
# function to get the output of xrandr
def get(cmd): return subprocess.check_output(cmd).decode("utf-8")
# - to count the occurrenc of " connected "
def count_screens(xr): return xr.count(" connected ")
# - to run the connect / disconnect command(s)
def run_command(cmd): subprocess.Popen(cmd)
# first count
xr1 = count_screens(get(["xrandr"]))
while True:
time.sleep(5)
# second count
xr2 = count_screens(get(["xrandr"]))
# check if there is a change in the screen state
if xr2 != xr1:
if xr2 == 2:
# command to run if connected (two screens)
run_command(["xrandr", "--output", "VGA-1", "--auto", "--above", "LVDS-1"])
elif xr2 == 1:
# command to run if disconnected (one screen)
# uncomment run_command(disconnect_command) to enable, then also comment out pass
pass
# run_command(disconnect_command)
# set the second count as initial state for the next loop
xr1 = xr2
O script é uma aquisição de este .
Para usá-lo
- Copie o script em um arquivo vazio, salve-o como
setup_scr.py
-
Teste-o pelo comando:
python3 /path/to/setup_scr.py
-
Se tudo funcionar como deveria, adicione a Startup Applications: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
/bin/bash -c "sleep 15 && python3 /path/to/setup_scr.py"
2. Basta adicionar o comando a um atalho e pressioná-lo depois de conectar a segunda tela:
Adicione a tecla de atalho: escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
python3 /path/to/setup_scr.py
Notas
- O script abrange tanto os comandos em execução na conexão como a desconexão de uma tela, deixei-a como estava, para que você tenha opções extras.
- Eu não pude testar, pois não tenho uma segunda tela anexada atualmente. Deve funcionar bem, mas sou sensível a pontos cegos e erros de digitação ...
-
O script, como é, presume que nenhum erro irá ocorrer, o que significa que a tela definida deve ser a única tela (externa) que você usa. Se esse não for o caso, devemos construir um condicional ou um try / except. Se sim, por favor mencione.
Em caso de erros, avise-nos.