xrandr (Português)

Status de tradução:
Esse artigo é uma tradução de
xrandr
. Data da última tradução: 2020-08-14. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Xorg
Multihead
O
xrandr
é um utilitário de configuração oficial para o
RandR
(
Redimensionar e girar
) a extensão
X Window System
. Pode ser usado para definir o tamanho, orientação ou reflexo das saídas para uma tela. Para configurar vários monitores, consulte a página
Multihead
.
Instalação
Instale
o pacote
xorg-xrandr
.
Front-ends gráficos
ARandR
— Fornece um front-end visual simples para XRandR. As posições relativas do monitor são mostradas graficamente e podem ser alteradas arrastando e soltando.
https://christian.amsuess.com/tools/arandr/
||
arandr
LXRandR
— Resolução de tela e ferramenta de gerenciamento de monitores externos para LXDE.
https://wiki.lxde.org/en/LXRandR
[
link inativo
2022-09-23 ⓘ]
|| GTK 2:
lxrandr
, GTK 3:
lxrandr-gtk3
[
link quebrado
: replaced by
lxrandr
]
Front-ends CLI
xlayoutdisplay
— Detecta e organiza exibições. Alças: estado da tampa do laptop, taxas de atualização mais altas disponíveis, cálculo e aplicação do DPI real. Melhor usado em .xinitrc, então pode ser chamado ao conectar/desconectar monitores ou fechar a tampa do laptop.
https://github.com/alex-courtis/xlayoutdisplay
||
xlayoutdisplay
AUR
Configuração de teste
Quando executado sem qualquer opção, o xrandr mostra os nomes de diferentes saídas disponíveis no sistema (
VGA-1
,
HDMI-1
, etc.) e as resoluções disponíveis em cada um, com um * após a atual e um + após a preferida:
xrandr
Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 8192 x 8192
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     59.93 +  60.00*   50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
…
Nota
Se a sua resolução não estiver presente na lista acima, consulte
#Adicionando resoluções não detectadas
Você pode usar
xrandr
para definir uma resolução diferente (deve estar presente na lista acima) em alguma saída:
$ xrandr --output HDMI-1 --mode 1920x1080
Quando várias taxas de atualização estão presentes na lista, ela pode ser alterada pela a opção
--rate
, ao mesmo tempo ou de forma independente. Por exemplo:
$ xrandr --output HDMI-1 --mode 1920x1080 --rate 60
A opção
--auto
irá ligar a saída especificada se estiver desligada e definir a resolução preferida (máxima):
$ xrandr --output HDMI-1 --auto
É possível especificar várias saídas em um comando, por exemplo, desligar
HDMI-1
e ligar
HDMI-2
com resolução preferida:
$ xrandr --output HDMI-1 --off --output HDMI-2 --auto
Nota
Alterações que você faz usando
xrandr
durará apenas na sessão atual.
xrandr
tem muito mais recursos - veja
xrandr(1)
para detalhes.
Configuração
O
xrandr
é apenas uma interface simples para a extensão RandR e não possui arquivo de configuração. No entanto, existem várias maneiras de obter configuração persistente:
A extensão RandR pode ser configurada via
configuração do X
, veja
Multihead#RandR
para detalhes. Este método fornece apenas configuração estática.
Se você precisa de configuração dinâmica, você precisa executar o comando
xrandr
cada vez que o servidor X é iniciado. Veja
na inicialização do Xorg
para detalhes. Este método tem a desvantagem de ocorrer bastante tarde no processo de inicialização, portanto, não irá alterar a resolução do
gerenciador de exibição
se você usar um.
Scripts personalizados chamando o
xrandr
pode ser vinculado a eventos (por exemplo, quando o monitor externo está conectado), veja
udev
ou
acpid
para detalhes. O
#Scripts
A seção fornece alguns scripts de exemplo que podem ser úteis para essa finalidade.
Dica
Tanto o KDM quanto o GDM têm scripts de inicialização que são executados quando o X é iniciado. Para GDM, eles estão em
/etc/gdm/
, enquanto para KDM isso é feito em
/usr/share/config/kdm/Xsetup
e para SDDM em
/usr/share/sddm/scripts/Xsetup
. Este método requer acesso root e mexer nos arquivos de configuração do sistema, mas terá efeito mais cedo no processo de inicialização do que usar o xprofile.
Scripts
Alternar monitor externo
Este script alterna entre um monitor externo (especificado por
$extern
) e um monitor padrão (especificado por
$intern
), para que apenas um monitor esteja ativo por vez.
O monitor padrão deve estar conectado ao executar o script, o que sempre é verdade para um laptop.
#!/bin/bash
intern=LVDS1
extern=VGA1

if xrandr | grep "$extern disconnected"; then
    xrandr --output "$extern" --off --output "$intern" --auto
else
    xrandr --output "$intern" --off --output "$extern" --auto
fi
Nota
Para deixar o monitor padrão ativado quando um monitor externo for conectado, substitua o
else
dessa forma
xrandr --output "$intern" --primary --auto --output "$extern" --right-of "$intern" --auto
.
Alternar configurações automaticamente com autorandr
O pacote
autorandr
permite que você configure facilmente o xrandr "profiles" que será ativado automaticamente quando você conectar / desconectar monitores. O Autorandr é executado automaticamente sempre que um monitor é conectado ou desconectado graças a um hook do udev. Veja a
homepage
para exemplos de uso.
Gerenciar 2 monitores
O
mons
AUR
é um script de shell compatível com POSIX para gerenciar rapidamente a exibição de 2 monitores.
Ele fornece modos bem conhecidos como computador, duplicar, estender e modo de projetor, bem como selecionar e posicionar um ou dois monitores entre aqueles conectados (para mais detalhes, veja
mons
).
Evite o travamento do X com xrasengan
Use esta solução alternativa para ligar as saídas conectadas que podem estar no modo suspenso e, portanto, mostradas como desconectadas, como costuma ser o caso de monitores DisplayPort:
declare -i count=2
declare -i seconds=1

while ((count)); do
    xrandr >/dev/null
    sleep $seconds
    ((count--))
done
O
xrasengan
AUR
é um wrapper xrandr com esta solução alternativa embutida.
$ xrasengan --force -on DisplayPort-0 -off HDMI-0
Com a opção
--force
,
xrasengan
irá atualizar o status de todas as saídas antes que HDMI-0 seja desligado, evitando uma falha do X se fossem as únicas saídas conectadas/ativas.
Para forçar o recarregamento das configurações atuais, o
xrasengan
fornece uma opção
--try-reload-active-layout
, que usa
--force
e
unxrandr
do pacote
arandr
para montar a linha de comando:
$ xrasengan --try-reload-active-layout
Isso pode ser usado na unidade do systemd ou em um teclado para evitar tela em branco ao retomar os monitores DisplayPort da suspensão.
Configuração usando arandr
arandr can graphically arrange your monitors, change resolutions, and save a script to duplicate your setup. By default, if you "Save As" it will be saved in
~/.screenlayout/
. These files can then be added to your
~/.profile
. Sometimes problems arise from running the arandr script too soon after login.
The factual accuracy of this article or section is disputed.
Reason:
Graphical things do not belong into
~/.profile
. (Discuss in
Talk:Xrandr (Português)
)
Edit
~/.profile
$ sleep 3
$ /home/<user>/.screenlayout/myLayout.sh
Solução de problemas
Adicionando resoluções não detectadas
Devido a erros de hardware ou drivers, as resoluções corretas do seu monitor nem sempre podem ser detectadas pelo xrandr. Por exemplo, o bloco de dados EDID consultado no monitor pode estar incorreto. No entanto, podemos adicionar as resoluções desejadas ao xrandr. Além disso, este mesmo procedimento pode ser usado para adicionar taxas de atualização que você sabe que são suportadas, mas não habilitadas pelo seu driver.
Primeiro execute
gtf
ou
cvt
para obter o
Modeline
para a resolução que queremos:
$ cvt 1280 1024
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
Dica
Para algumas telas LCD (por exemplo, Samsung 2343NW, Acer XB280HK), o comando
cvt -r
(= com ponto cego reduzido) deve ser usado.
Dica
Se você descobrir que a tela fica em branco quando a linha de modelo é aplicada, tente uma taxa de atualização mais baixa (por exemplo, 30 ou 45 em vez de 60). A taxa de atualização deve ser passada como o terceiro argumento:
cvt 2560 1440 45
Nota
Se o driver de vídeo Intel
xf86-video-intel
é usado, pode relatar a resolução desejada junto com suas propriedades em
/var/log/Xorg.0.log
— use isso primeiro se for diferente da saída de
gtf
ou
cvt
. Por exemplo, o log e seu uso com o xrandr:
[    45.063] (II) intel(0): clock: 241.5 MHz   Image Size:  597 x 336 mm
[    45.063] (II) intel(0): h_active: 2560  h_sync: 2600  h_sync_end 2632 h_blank_end 2720 h_border: 0
[    45.063] (II) intel(0): v_active: 1440  v_sync: 1443  v_sync_end 1448 v_blanking: 1481 v_border: 0
xrandr --newmode "2560x1440" 241.50 2560 2600 2632 2720 1440 1443 1448 1481 -hsync +vsync
Você também pode encontrar linhas semelhantes para o driver de configuração de modo.
Em seguida, criamos um novo modo xrandr. Observe que a palavra-chave Modeline precisa ser omitida.
$ xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
Dica
Alguns programas têm problemas para reconhecer os modos marcados com "_60.00" veja
[1]
*/
Depois de criá-lo, precisamos de uma etapa extra para adicionar este novo modo à nossa saída atual (VGA1). Usamos apenas o nome do modo, uma vez que os parâmetros foram configurados anteriormente.
$ xrandr --addmode VGA1 1280x1024_60.00
Agora mudamos a resolução da tela para a que acabamos de adicionar:
$ xrandr --output VGA1 --mode 1280x1024_60.00
Observe que essas configurações só têm efeito durante esta sessão.
Se você não tiver certeza sobre a resolução que irá testar, você pode adicionar um
sleep 5
e uma linha de comando de resolução segura a seguir, como esta:
$ xrandr --output VGA1 --mode 1280x1024_60.00 && sleep 5 && xrandr --newmode "1024x768-safe" 65.00 1024 1048 1184 1344 768 771 777 806 -HSync -VSync && xrandr --addmode VGA1 1024x768-safe && xrandr --output VGA1 --mode 1024x768-safe
Além disso, mude
VGA1
para corrigir o nome da saída.
A soma de verificação EDID é inválida
Se o método anterior resultar em um
*ERROR* EDID checksum is invalid
erro durante a inicialização, veja
KMS#Forcing modes and EDID
e
[2]
.
Ou
xrandr --addmode
pode dar-lhe o erro
X Error of failed request: BadMatch
. Os usuários da NVIDIA devem ler
NVIDIA/Troubleshooting#xrandr BadMatch
.
BadMatch
pode indicar uma soma de verificação EDID inválida. Para verificar se este é o caso, execute o X no modo detalhado (por exemplo
startx -- -logverbose 6
) e verifique seu log do Xorg para mensagens sobre um EDID incorreto.
A resolução da tela volta após um piscar
Se você usa
GNOME
e seu monitor não tem um EDID, acima
#Adicionando resoluções não detectadas
pode não funcionar, com a tela piscando apenas uma vez, após
xrandr --output
.
Edite o arquivo
~/.config/monitors.xml
, ou exclua-o completamente e reinicie.
It is better explained in
this
article.
Adicionando resoluções não detectadas permanentemente
Assim que uma resolução adequada for encontrada usando o
xrandr
, o modo pode ser adicionado permanentemente criando uma entrada em
/etc/X11/xorg.conf.d/
:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier "VGA1"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Option "PreferredMode" "1280x1024_60.00"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "VGA1"
    DefaultDepth 24
    SubSection "Display"
        Modes "1280x1024_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier "Device0"
    Driver "intel"
EndSection
Substituir
intel
com o driver certo, por exemplo:
nvidia
. Quando o servidor X for reiniciado, você poderá definir a nova resolução.
Se isso não funcionar para você, tente remover as seções Tela e Dispositivo e apenas sair da seção monitor.
[3]
Resolução menor do que o esperado
Dica
Tente
#Adicionando resoluções não detectadas
primeiro, se não funcionar, você pode tentar este método.
Se sua placa de vídeo for reconhecida, mas a resolução for menor do que o esperado, você pode tentar fazer isso.
Histórico: Placa de vídeo ATI X1550 e dois monitores LCD DELL 2408 (até 1920x1200) e Samsung 206BW (até 1680x1050). No primeiro login após a instalação, o padrão de resolução é 1152x864. xrandr não lista nenhuma resolução superior a 1152x864. Você pode querer tentar editar /etc/X11/xorg.conf, adicionar uma seção sobre tela virtual, logout, login e ver se isso ajuda. Se não, então continue a ler.
Alterar xorg.conf
/etc/X11/xorg.conf
Section "Screen"
        ...
        SubSection "Display"
                Virtual 3600 1200
        EndSubSection
EndSection
Sobre os números: DELL à esquerda e Samsung à direita. Portanto, a largura virtual é a soma de ambas as larguras do LCD 3600 = 1920 + 1680; A altura então é calculada como o máximo deles, que é máximo (1200,1050) = 1200. Se você colocar um LCD acima do outro, use este cálculo: (max (largura1, largura2), altura1 + altura2).
Correção de resoluções de tv overscan através da propriedade underscan
Com uma TV de tela plana,
w:overscan
parece que a foto é "ampliada" então as bordas são cortadas.
Verifique na sua TV se há um parâmetro a ser alterado. Caso contrário, verifique se a saída tem suporte para a propriedade underscan (xrandr --prop), em caso afirmativo, aplique um
underscan
e alterar os valores das bordas. O necessário
underscan vborder
e
underscan hborder
os valores podem ser diferentes para você, basta verificar e alterar para mais ou menos.
$ xrandr --output HDMI-0 --set underscan on --set "underscan vborder" 25 --set "underscan hborder" 40
Correção de resoluções de tv overscan via --transform
Se o underscan não estiver disponível, outra solução está usando
xrandr --transform
a,b,c,d,e,f,g,h,i
, que aplica uma matriz de transformação na saída. Veja a página de manual
xrandr(1) § RandR_version_1.3_options
para a explicação da transformação.
Por exemplo, a transformação escalando coordenadas horizontais por
0.8
, coordenadas verticais por
1.04
e mover a tela 35 pixels para a direita e 19 pixels para baixo é:
$ xrandr --output HDMI1 --transform 0.80,0,-35,0,1.04,-19,0,0,1
Desativando monitor fantasma
Em alguns casos, um monitor inexistente pode ser detectado pelo sistema. Para desativá-lo, encontre o nome da saída fantasma, por exemplo: VGA1, e desligue-o com
$ xrandr --output VGA1 --off
Para tornar isso permanente, adicione o seguinte a uma entrada em
/etc/X11/xorg.conf.d/
:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier "VGA1"
    Option "Ignore" "true"
EndSection
Veja também
https://wiki.ubuntu.com/X/Config/Resolution
Debian Wiki - RandR 1.2 tutorial
Xorg RandR 1.2 on ThinkWiki
FAQVideoModes - more information about modelines