Expliqueba (pode pular direto pra gambiarra)
Há dois motivos para esses problemas:
- 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.
- 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
- Largura
- Altura
- 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
- 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
- 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
- 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.)
- 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.