Espelhe monitores duplos com diferentes resoluções

24

Eu uso o seguinte xrandrcomando para espelhar meu laptop de 17 "com um monitor externo de 27", para que eu possa usá-lo para fazer apresentações:

xrandr --output LVDS1 --mode 1600x900 --output HDMI1 --mode 1920x1080 --same-as LVDS1

No entanto, o monitor externo (HDMI1) volta para uma resolução de 1600x900 em vez de 1920x1080.

saída xrandr:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS1 connected primary (normal left inverted right x axis y axis
   1600x900       60.0 +
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080      60.0*+
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       75.0     59.9  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
DP1 disconnected (normal left inverted right x axis y axis)
milarepa
fonte

Respostas:

11

Se você não se importa em fazer panning no laptop, tente o seguinte:

xrandr --output LVDS1 --rate 60 --mode 1920x1080 --fb 1920x1080 --panning 1920x1080* --output HDMI1 --mode 1920x1080 --same-as LVDS1
Antoniu Mesesan
fonte
Super ótimo, não tinha ideia de que isso era suportado!
blast_hardcheese
1
Parece ser um bug realmente ficando fora desta mode-- xrandr --output $external --primaryseguido por xrandr --output $internal --primaryisso resolveu para mim (sugerido aqui )
blast_hardcheese
5
Por que existe '*' no argumento para --panninglá? O manual não diz nada sobre isso.
jarno
Obrigado por isso, é assim que eu modificou as resoluções para o trabalho com a minha UltraWide (21: 9) Monitor: xrandr --output eDP1 --mode 1920x1080 --fb 2560x1080 --panning 2560x1080--output HDMI2 --mode 2560x1080 --same-as eDP1. Isso causa algumas falhas ao movimentar a tela do laptop, mas eu não o uso muito, portanto tudo bem comigo.
Joelostblom 10/10
Depois de desconectar o monitor externo, xrandr --output eDP1 --mode 1920x1080 --fb 1920x1080 --panning 1920x1080volto ao normal no meu laptop. Você pode adicionar xrandr --HDMI2 --offantes disso, se desejar evitar a mensagem de aviso do xrandr.
Joelostblom 10/10
6
xrandr --fb 1920x1080 --output LVDS1 --mode 1600x900 --scale-from 1920x1080 --output HDMI1 --mode 1920x1080 --scale 1x1 --same-as LVDS1

ou você poderia fazê-lo de outra maneira para usar a resolução do LVDS1 como resolução base, mas você terá qualidade inferior no HDMI1.

jarno
fonte
Nota: para listar seus monitores, usexrandr --listactivemonitors
VasyaNovikov 31/07
3

Parece que xrandrnão é muito bom lidar com monitores duplos na --same-asconfiguração, quando os monitores não têm a mesma resolução. Além de voltar à resolução comum mais alta de ambos os monitores (essa resolução pode não ser satisfatória ou pode nem sequer existir), uma solução alternativa é usar a --scaleopção Se você quiser [monitor 1]com resolução [resx1]x[resy1]e[monitor 2] resolução [resx2]x[resy2], pode usar, por exemplo,

xrandr --output [monitor 1] --mode [resx1]x[resy1] --output [monitor 2] --same-as [monitor 1] --scale `echo "[resx1]/[resx2]" | bc -l`x`echo "[resy1]/[resy2]" | bc -l`

onde o `echo "[res*1]/[res*2]" | bc -l`cálculo das proporções desejadas. Não garantindo qualidade perfeita; além disso, lembre-se de que a qualidade das resoluções definidas acima é limitada pela resolução de [monitor 1].

Hugo Raguet
fonte
3

use a xrandr --scale-from ...opção

xrandr --output LVDS1 --scale-from 1920x1080 reduzirá a imagem de alta resolução do monitor externo (HDMI1) para o monitor de laptop LVDS1 de menor resolução.

Susanne Oberhauser
fonte
1
Uma observação para pessoas com diferentes proporções de aspecto (como ultra-amplo 21: 9 e laptop 16: 9) é que isso fará com que a tela do laptop pareça comprimida horizontalmente. Também notei que a ativação e a --scale-fromdesativação do modo tornam minha tela preta ou não consigo clicar em nada. A solução para mim foi entrar em outro tty (alt + ctrl + F2, por exemplo, e depois voltar ao tty primário (F1) .No entanto, isso nem sempre funcionava e às vezes eu estava navegando na tela cegamente, para que pudesse ser um boa idéia para tentar fazer isso quando você não tem nada de importante aberto e pode permitir uma reinicialização.
joelostblom
2

Definir a resolução é o que a fonte xrandr faz se você especificar a --same-asrelação:

case relation_same_as:
    output->x = relation->x;
    output->y = relation->y;

você tentou:

xrandr --output HDMI1 --mode 1920x1080 --output LSVD1 --mode 1600x900 --same-as HDMI1

?

Zelda
fonte
1
Você interpretou mal essa citação de fonte. O xe ydiz respeito à posição e não à resolução . Portanto --same-as, o monitor tem a mesma posição no canto superior esquerdo. Você certamente pode definir resoluções diferentes e ainda usar --same-as.
Goldilocks