Problemas com ultrawide/placa de vídeo

Expliqueba (pode pular direto pra gambiarra)

Há dois motivos para esses problemas:

  1. Oficialmente, para a placa detectar resoluções de 21:9 por conta própria, você precisa do HDMI 2.0, cuja especificação foi publicada em 2015. Evidente uma nVidia da época em que meme "Mas Roda Crysis?"® era novidade não a segue.
  2. O driver proprietário da nVidia depende de versões específicas do Xorg. Para placas atuais, isso não é um problema. O Xorg atualiza, a nVidia atualiza os drivers e as distros esperam os dois entrarem em sincronia para mandar o update. No entanto, para placas antigas com drivers jurássicos, você tem que arrumar um jeito de instalar uma versão mais antiga do Xorg no S.O. ou concordar com o Torvalds que não lançar as especificações de produtos da década retrasada para drivers opensource é ■■■■.

Então, a princípio, se quiser gastar com o PC, a solução fácil seria pegar uma Nvidia GT 9 ou 10/Radeon Rx usada ou algo assim, tomando cuidado para ter compatibilidade com HDMI 2.0.

(Potencial) gambiarra gigante

Nota: esse cara achou melhores resultados usando DisplayPort em vez de HDMI: Ultrawide monitor on Linux

Etapa 1 - Tomando nota das configurações de tela

Nesses live CD que detectam ultrawide logo de cara, rode xrandr e guarde a saída em um pendrive.
Tome nota, na saída, das seguintes propriedades:

eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768      60.00*+  47.98  
  1. Largura
  2. Altura
  3. Taxa de atualização (número com asterisco do lado).

No exemplo do meu humilde laptop, esses seriam 1366, 768 e 60.00 respectivamente.
Meu monitor não é ultrawide, só está aqui de exemplo. Na etapa 2 vou fazer um “ultrawide” com uma resolução qualquer, a título de exemplo.

Etapa 2 - Testando a copiar as configurações

  1. No ambiente sem ultrawide, faça cvt LARGURA ALTURA TAXA. Isso vai gerar uma saída nesse formato:
$ cvt 1365 585 60
# 1368x585 59.83 Hz (CVT) hsync: 36.43 kHz; pclk: 63.25 MHz
Modeline "1368x585_60.00"   63.25  1368 1416 1552 1736  585 588 598 609 -hsync +vsync
  1. Faça esse comando:
    xrandr --newmode O_QUE_SAIU_DEPOIS_DE_MODELINE
    Se não sair nada, não houve erro.
    Exemplo:
$ xrandr --newmode "1368x585_60.00"   63.25  1368 1416 1552 1736  585 588 598 609 -hsync +vsync
  1. Torne possível selecionar o que foi feito no passo anterior com
    xrandr --addmode eDP-1 "1368x585_60.00"
    Troque eDP-1 pela primeira palavra da primeira linha que saiu no seu Xrandr na Etapa 1, e o que está entre aspas pelo que estava entre aspas no passo anterior. (por exemplo “2560x1080_74.99”, etc.)
  2. Você pode agora selecionar a resolução ultrawide no painel do sistema.

Etapa 3 - Ativando no boot.

Essas configurações não persistem após reiniciar
Você pode criar um arquivo, no entanto, que as refaz após cada boot.
Crie monitor.sh, copie e cole os comandos do passo 2 e 3 da etapa 2 um após o outro.
Exemplo:

#! /bin/sh
xrandr --newmode "1368x585_60.00"   63.25  1368 1416 1552 1736  585 588 598 609 -hsync +vsync
xrandr --addmode eDP-1 "1368x585_60.00"

Caso queira que esse script também defina para ultra wide automicamente, adicione mais uma linha no final:

#! /bin/sh
xrandr --newmode "1368x585_60.00"   63.25  1368 1416 1552 1736  585 588 598 609 -hsync +vsync
xrandr --addmode eDP-1 "1368x585_60.00"
xrandr --output eDP-1 --mode "1368x585_60.00"

Evidentemente, todos o eDP-1 e "1368x585_60.00" deverão ser trocados pelos valores que você achou na etapa 2.

No seu ambiente de trabalho, deve ser possível configurá-lo para iniciar junto com ele, com uma atrasinho na inicialização. Depois de rodá-lo, essa resolução ultrawide estará sempre disponível no painel de controle.

2 curtidas