Como posso fazer o Ubuntu sempre reconhecer meu monitor externo no lado esquerdo?

3

Sempre que ligo meu laptop e conecto meu monitor externo via HDMI, preciso ir para as configurações de exibição para ajustar as configurações padrão. Na inicialização, recebo uma tela duplicada em vez da tela estendida que desejo. Eu também recebo o meu monitor externo à direita quando eu sempre o coloco do lado esquerdo. Como posso fazer com que, por padrão, permaneça estendido e à esquerda? Sim, eu sempre coloco "apply" e "keep this configuration", mas parece redefinir na inicialização.

xrandr output com o monitor configurado exatamente como eu quero:

Screen 0: minimum 8 x 8, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected primary 1600x900+1920+180 (normal left inverted right x axis y axis) 382mm x 215mm
   1600x900      60.01*+  40.03  
   1440x900      59.89  
   1368x768      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   800x450       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
DP-1-4 disconnected
HDMI-1-4 disconnected
HDMI-1-5 connected 1920x1080+0+0 510mm x 287mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.08    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
  1024x768 (0x55) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x59) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0x5a) 36.000MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  640x480 (0x62) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz
    
por whatwhatwhat 03.07.2016 / 19:13

1 resposta

1

contornar

Os layouts de tela que não se fixam geralmente acontecem quando o driver de gráficos e o sreen de alguma forma não se comunicam de maneira suficiente. No entanto, , isso não significa que não haja solução.

O comando para fazer sua configuração como você deseja é (se eu não cometer erro ou erro de digitação):

xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180

Por que este é o comando para fazer isso é explicado a.o. aqui .

Como usar

Você pode usar este comando de duas maneiras:

1. Versão manual (atalho)

Adicione a uma tecla de atalho para pressionar quando a segunda tela estiver conectada: escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:

xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180

2. Versão Automaic

Execute este comando automaticamente se a segunda tela estiver conectada:

  • Copie o script abaixo em um arquivo vazio, salve-o como set_screen.py

    #!/usr/bin/env python3
    import subprocess
    import time
    
    def numscreens():
        scrdata = subprocess.check_output("xrandr").decode("utf-8").splitlines()
        return len([l for l in scrdata if " connected" in l])
    
    nscr1 = None
    
    while True:
        time.sleep(5)
        nscr2 = numscreens()
        if nscr2 != nscr1:
            if nscr2 == 2:
                subprocess.Popen(["xrandr", "--output", "HDMI-1-5", "--pos", "0x0",
                                  "--output", "LVDS1", "--pos", "1920x180"])
        nscr1 = nscr2
    
  • Teste o script executando-o a partir de um terminal:

    python3 /path/to/set_screen.py
    
  • Se tudo funcionar bem, adicione-o aos aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:

    /bin/bash -c "sleep 30 && python3 /path/to/set_screen.py"
    
por Jacob Vlijm 03.07.2016 / 20:02