Exibe e sua posição relativa em um script de shell

2

Eu quero obter informações sobre as exibições, algo como xrandr , mas com mais informações.

Eu quero saber a posição deles. Então, se eu tiver dois ou mais monitores conectados, quero saber como eles estão relacionados uns com os outros. Se estivermos usando as exibições como uma extensão e não como uma duplicata. Com um comando shell eu quero saber se eu tenho qualquer exibição para a esquerda, direita, para cima ou para baixo.

Existe algo semelhante? Ou pelo menos um comando onde eu dou o id do display e ele me diz se eu tenho outro display em alguma direção?

    
por Fabio Antunes 03.07.2014 / 00:14

1 resposta

2

Bem, eu não pude testar todas as opções, mas parece que xrandr tem esquerda para direita e topo para < orientação strong> inferior .

Aqui está uma captura de tela dos meus monitores para ajudar a entender melhor:

QuandoexecutoxrandrnomeuTerminal,éissoquerecebo:

Screen0:minimum320x200,current3046x1050,maximum32767x32767LVDS1connected1366x768+0+282(normalleftinvertedrightxaxisyaxis)344mmx193mm1366x76860.0*+1360x76859.860.01024x76860.0800x60060.356.2640x48059.9VGA1connected1680x1050+1366+0(normalleftinvertedrightxaxisyaxis)473mmx296mm1680x105060.0*1024x76860.0800x60060.356.2848x48060.0640x48059.9

Agora,nestasaídaparamimnoinício,nãohavianadaquepudessemefazerentendercomoelesestãorelacionados,massimcomoslayoutsdoMonitorsedepoisdeler,descubrocomooxrandrrepresentaosrelacionamentosentreosMonitores.

Sevocêperceberquemeusmonitorestêmtelasderesoluçãodiferentesexrandrcriaralgumtipoderesoluçãovirtualcombinandoalarguramaiorcomamaioraltura.

Éporissoquenaprimeiralinhadaminhasaídaeuentendoqueminharesoluçãoatualé:

3046x1050=(1366+1680)x1050

Adicionamosasduasresoluçõesdelarguraemantemosamaioraltura.

IssoocorreporquetenhoolayoutMonitoresladoalado,seporacasoeualterarolayoutdeMonitoresparaalgoassim:

O xrandr é este:

Screen 0: minimum 320 x 200, current 1680 x 1818, maximum 32767 x 32767
LVDS1 connected 1366x768+314+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1680x1050+0+768 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0* 
   1024x768       60.0  
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9 

Então, como você deve ter notado, a resolução virtual agora é:

1680 x 1818 = 1680 x (768+1050)

Agora, voltando para o primeiro layout e xrandr output, minha resolução de laptop era esta:

LVDS1 connected 1366x768+0+282

Então o que isso significa é que meu laptop é o mais esquerdo possível para a origem (meu X é zero) e também tem uma distância de 282px para a origem do topo (meu Y é 282px ou -282px, mas vamos assumir 282px por uma questão de simplicidade):

E se eu verificar a saída xrandr do meu outro monitor, obtenho:

VGA1 connected 1680x1050+1366+0

1366 é a largura do monitor do meu laptop, por isso posso supor que esta tela está à direita do monitor do meu laptop.

    
por 13.07.2014 / 04:40