Forçar resolução com xrandr

forcando reolucao xrandr

O xrandr é uma extensão do RandR que permite a sua manipulação via linha de comando para alterar diversos parâmetros do vídeo como resolução, rotação, saídas padrão etc. Nesse post vou demonstrar como “Forçar” resolução com o xrandr no Ubuntu e derivados.

Primeiro temos entender o que seria o forçar e porque usar o xrandr. Nesse caso o forçar seria uma alternativa para quando não e possível encontrar a resolução adequada no utilitário de resolução(telas) da distribuição, assim podemos criar o modo que precisamos com o xrandr.

Ele também é extremamente útil como uma interface de linha de comando pois permite que seja criado um Shell Script mesmo em uma seção SSH por exemplo. No decorrer do artigo veremos como setar a resolução, criar o script e colocar na inicialização do sistema.

Conheça um pouco mais sobre o xrandr clicando aqui ou digite “man xrandr” no terminal.

Adicionando uma nova resolução com xrandr

Antes de adicionar um novo modo, ou resolução, verifique se ele já existe e se está disponível. Para isso abra um terminal, geralmente com “Ctrl + T”, e digite apenas “xrandr”, sem as aspas. O resultado deve ser algo parecido com isso:

Alterar Resolução com xrandr
Modos disponíveis no xrandr

Note que no meu caso são exibidas várias resoluções, ou modos, e que a primeira é exibida com um “*”. Isso indica qual a resolução corrente, ou seja, qual resolução está sendo sendo usada no momento. Repare também na segunda linha onde se lê “LVDS-1 connected primary”. Essa é a minha saída primária e lvds é exibido para telas de notebook mas poderia ser VGA-1, HDMI-1 etc… Guarde essa saída que vamos usar a seguir.

Supomos que eu queira usar o notebook em uma resolução que não é listada, por exemplo 1920×1080. Antes de informar isso ao xrandr é preciso calcular as cordenadas da tela e passar mais informações que ele precisa para criar um novo modo. Para essa tarefa podemos usar o CVT – “Alterar Resolução com xrandr”. O comando seria o seguinte:

cvt 1920 1080 60

Aqui informamos que queremos as informações para uma resolução de 1920 horizontal, 1080 vertical e a 60hz. Seu resultado será algo como:

1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

Com essa informação já podemos adicionar o modo(resolução) ao xrandr. A parte que interessa para o xrandr é a que vem depois de “Modeline” que é justamente a descrição do novo modo, no meu caso “1920x1080_60.00” 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync. Agora vamos adicionar o novo modo com o comando:

xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

Não deve retornar nenhuma mensagem no terminal caso dê tudo certo. Se retornar reveja os passos anteriores. Lembra que disse que iriamos usar a saída do comando xrandr que mostra a saída padrão? Pois bem, criamos o modo mas ainda falta adicionar esse modo nas opções do xrandr. Segue o comando:

xrandr --addmode LVDS-1 1920x1080_60.00

Veja que passamos a saída e o modo. Em alguns casos assim que se executa esse ultimo comando a resolução já é setada automaticamente, não foi o caso do notebook que estou usando agora. Então vamos dizer o xrandr que queremos usar o modo recém adicionado da seguinte forma:

xrandr --output LVDS-1 --mode 1920x1080_60.00

Aqui passamos a saída padrão e logo em seguida o modo que queremos usar. Veja como ficou a saída do comando “xrandr” sem nenhum parâmetro e note o “*” no novo modo:

resolution seted with xrandr
Resolução alterada com xrandr

Nesse ponto você já deve ser capaz de adicionar a resolução que precisa, porém, essas configurações do xrandr são válidas apenas durante a sessão corrente e, assim, logo que a máquina for reiniciada serão perdidas. Vamos ver uma forma de contornar isso.

Adicionando um script do xrandr na inicialização do sistema

O script deve conter apenas os três últimos comandos, ficando da seguinte forma:

#!/bin/bash
#Script que força a resolução usando xrandr
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode LVDS-1 1920x1080_60.00
xrandr --output LVDS-1 --mode 1920x1080_60.00

Salve o arquivo na sua pasta pessoal com o nome "resolucao.sh" e em seguida dê permissão de execução com:

chmod +x ~/resolucao.sh

Para adicionar um script na inicialização do sistema siga as seguintes instruções de acordo com o ambiente de desktop que estiver utilizando.

No Gnome você pode digitar no terminal "gnome-session-properties" ou buscar por aplicativos de sessão. No KDE - Plasma vá em "Configurações do Sistema -> Inicialização e desligamento -> Iniciar automaticamente" que logo no canto inferior esquerdo terá a opção "Adicionar Script"

Confira outros artigos do blog:

Leave Comment