Restaure várias configurações do monitor

2

Esta é uma continuação de uma pergunta anterior ( Salvando as configurações do monitor? ), onde aprendemos que a configuração é salvo no arquivo ~/.config/monitors.xml .

Meu problema é que minha configuração é normalmente, mas nem sempre restaurada. Ou seja, muitas vezes eu tenho que ligar para o capô de exibição para reconfigurar os 3 monitores quando chego ao trabalho. Isso é tedioso e eu quero evitar isso.

Eu posso salvar o arquivo monitors.xml para que, mesmo quando o Ubuntu o sobrescreva, eu possa restaurá-lo. No entanto, a questão é: como eu digo ao ubuntu para ler o arquivo? Eu não quero sair ou reiniciar.

PS. System76 Gazelle Pro, Ubuntu 15.10, Unidade.

PPS. A configuração é:

  <configuration>
      <clone>no</clone>
      <output name="eDP1">
          <vendor>CMN</vendor>
          <product>0x15bb</product>
          <serial>0x00000000</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>1080</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
      <output name="HDMI1">
          <vendor>DEL</vendor>
          <product>0xa07a</product>
          <serial>0x354c3553</serial>
          <width>1920</width>
          <height>1200</height>
          <rate>60</rate>
          <x>3000</x>
          <y>0</y>
          <rotation>left</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
      <output name="VGA1">
          <vendor>DEL</vendor>
          <product>0x4071</product>
          <serial>0x414b314c</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>left</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
      <output name="VIRTUAL1">
      </output>
  </configuration>

PPPS. Saída xrandr:

$ xrandr
Screen 0: minimum 8 x 8, current 4200 x 1920, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1080+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080     60.01*+  59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   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  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
HDMI1 connected 1200x1920+3000+0 left (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+
   1920x1080     60.00  
   1600x1200     60.00  
   1680x1050     59.88  
   1280x1024     60.02  
   1280x960      60.00  
   1024x768      60.00  
   800x600       60.32  
   640x480       60.00  
   720x400       70.08  
VGA1 connected 1080x1920+0+0 left (normal left inverted right x axis y axis) 510mm x 287mm
   1920x1080     60.00*+
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1024x768      75.08    60.00  
   800x600       75.00    60.32  
   640x480       75.00    60.00  
   720x400       70.08  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    
por sds 24.11.2015 / 15:40

1 resposta

2

Supondo que você não tenha que mudar o monitor resolução (em caso afirmativo, apenas mencione), e sua configuração existe organizando-os da esquerda para a direita, o comando (bastante longo :)):

xrandr --output VGA1 --pos 0x0  --rotate left &&\
xrandr --output eDP1 --pos 1080x0 --rotate normal &&\
xrandr --output HDMI1 --pos 3000x0 --rotate left

deve criar o arranjo como você deseja.

Explicação:

A partir da saída de xrandr , para cada tela, há uma string parecida com:

VGA-1 connected 1280x1024+1680+0

O que nos dá informações sobre como a tela está situada na "imagem inteira", conforme explicado aqui . Posteriormente, você pode organizar sua (s) tela (s) pelo comando:

xrandr --output <screenname> --pos <xxy> 

e para girar:

xrandr --output <screenname> --rotate left

para duas das três telas. O --rotate normal para a tela 1 não deve ser necessário, mas para ter certeza ...

como usado no comando na resposta (this).

Nota importante

Se você fizer a configuração desse modo, é importante que você configure suas telas da esquerda para a direita , o que significa que os comandos precisam ser organizados nessa ordem.

Adicionando o comando a uma tecla de atalho

Por motivos de conveniência, você pode adicionar o comando a uma tecla de atalho: escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:

/bin/bash -c "xrandr --output VGA1 --pos 0x0  --rotate left && xrandr --output eDP1 --pos 1080x0 --rotate normal && xrandr --output HDMI1 --pos 3000x0 --rotate left"

para um atalho.

    
por Jacob Vlijm 24.11.2015 / 17:21