Como definir uma resolução personalizada?

77

Tentei usar xrandrpara definir 1680x1050 como um novo modo de saída VGA, mas diz:

sudo xrandr --addmode VGA-0 1680
X Error of failed request:  BadMatch (invalid parameter attributes)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  18 (RRAddOutputMode)
Serial number of failed request:  35
Current serial number in output stream:  36
user216356
fonte

Respostas:

128

Em primeiro lugar gerar um "modeline" usando CVT
Sintaxe é: CVT altura largura taxa de freqüência

cvt 1680 1050 60

isso lhe dá:

# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

Agora diga isso ao xrandr :

xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

Agora você pode adicioná-lo à tabela de possíveis resoluções de uma saída de sua escolha:

xrandr --addmode VGA-0 1680x1050_60.00

As alterações são perdidas após a reinicialização. Para configurar a resolução persistentemente, crie o arquivo ~/.xprofilecom o conteúdo:

#!/bin/sh
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode VGA-0 1680x1050_60.00
thom
fonte
21
O dispositivo conectado pode não estar VGA-0. Se você receber a mensagem xrandr: cannot find output "VGA-0", tente executar o seguinte comando: xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"(fonte: xrandr no ArchWiki ). A saída desse comando deve ser o identificador de dispositivo correto.
Terceiro
10
Você não precisa de sudo com xrandr
Panther
2
Gostaria de acrescentar que tenho o mesmo erro - e acima não resolver o problema de todos
TellMeWhy
3
Se você estiver em uma VM, a exibição geralmente é em Virtual1vez de VGA-0.
22616 CyberEd #
5
Você precisa substituir o VGA-0 pela conexão do monitor. Use xrandr --listmonitors. Consulte Como corrigir o erro 'xrandr: não consegue encontrar a saída “VGA1”'?
224 Hooman
14

Como definir uma resolução personalizada especificada anteriormente. Após executar as outras etapas definidas para criar a resolução, execute:

xrandr -s 1680x1050
GuiRitter
fonte
4

Como definir uma resolução personalizada especificada anteriormente ao executar vários monitores . Após executar as outras etapas definidas para criar a resolução, execute:

xrandr --output DVI-0 --mode 1680x1050

Substitua DVI-0pelo seu ID do dispositivo, por exemploVGA-0

pokkie
fonte
3

Graças a thom e thirdender, essa é basicamente uma configuração de comando única, com base na resposta mais votada .

RES="1920 1200 60" && \
DISP=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") && \
MODELINE=$(cvt $(echo $RES) | grep -e "Modeline [^(]" | sed -r 's/.*Modeline (.*)/\1/') && \
MODERES=$(echo $MODELINE | grep -o -P '(?<=").*(?=")') && \
cat > ~/.xprofile << _EOF
#!/bin/sh
xrandr --newmode $MODELINE
xrandr --addmode $DISP $MODERES
_EOF

O comando acima irá gerar o ~/.xprofilearquivo desejado . Apenas certifique-se de usar a resolução (ou seja, a RESvariável) do seu agrado. Mais informações aqui .

Tanasis
fonte