Quando a TV Corta a Tela: Como Forçar Resoluções Personalizadas no Linux (xrandr)

Você conecta seu notebook na Smart TV da sala para trabalhar ou assistir a um filme. A imagem aparece, mas algo está errado: as bordas estão cortadas. A barra de aplicativos sumiu na esquerda, o relógio sumiu no topo.

Isso é o Overscan.

Uma nota rápida antes de começar:

Muitas Smart TVs possuem um botão no controle remoto (chamado “Just Scan”, “Screen Fit” ou “Formato de Tela”) que resolve isso fisicamente.

Este tutorial é para você se:

  1. A sua TV é mais antiga e não tem essa opção;
  2. O controle remoto sumiu;
  3. Ou você simplesmente prefere resolver tudo pelo teclado do computador sem ter que navegar nos menus da televisão.

No meu caso, a resolução Full HD (1920×1080) ficava grande demais para a TV processar sem cortes. A resolução ideal seria 1600×900, mas ao abrir as configurações do Ubuntu, essa opção simplesmente não existia no menu.

O sistema operacional “conversa” com o monitor para perguntar quais resoluções ele suporta. Às vezes, essa conversa falha. Hoje, vamos aprender a intervir nesse diálogo e dizer manualmente ao sistema: “Sim, eu quero usar essa resolução, faça acontecer.”

Passo 1: O Teste de Compatibilidade (Wayland vs Xorg)

Antes de digitarmos qualquer código complexo, precisamos saber se o seu sistema vai aceitar os comandos. O Ubuntu moderno usa um sistema chamado Wayland que, por padrão, bloqueia as modificações de tela que vamos fazer.

Abra o terminal e digite este comando simples:

echo $XDG_SESSION_TYPE
  • Se aparecer x11: ✅ Ótimo! Você está no Xorg. Pode seguir este tutorial direto.
  • Se aparecer wayland: 🛑 Pare aqui. O comando xrandr não vai funcionar na sua interface gráfica agora.

Passo 1: Descobrindo o Nome do Monitor (xrandr)

O primeiro passo é saber como o Linux “chama” a sua saída de vídeo. É HDMI-1? DP-1? eDP-1?

Abra o terminal e digite apenas:

xrandr

Uma lista enorme de informações vai aparecer. Não se assuste. O comando xrandr (X Resize and Rotate) é o gerente de telas do Linux.

Procure na lista pela palavra “connected”.

  • Se for um notebook, geralmente é algo como eDP-1.
  • Se for um cabo HDMI, será HDMI-1 ou HDMI-A-0.

Anote esse nome. Vamos chamá-lo de NOME_DA_TELA. No meu exemplo, usarei HDMI-1.

Passo 2: Calculando a “Receita” (cvt)

Não basta dizer “quero 1600×900”. A placa de vídeo precisa saber a frequência, os tempos de sincronização e a varredura horizontal. Em vez de calcularmos isso na mão (o que seria loucura), usamos uma calculadora chamada cvt (Coordinated Video Timing).

Digamos que eu queira a resolução 1600×900. O comando é:

cvt 1600 900

O terminal vai cuspir uma resposta parecida com esta:

# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

O que nos interessa? Apenas a parte que vem depois da palavra Modeline. Copie todo o trecho, começando pela primeira aspa do nome e indo até o último caractere da linha.

No meu caso, copiei: "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Passo 3: Criando a Nova Resolução (--newmode)

Agora vamos pegar essa “receita” que copiamos e cadastrá-la no sistema. Pense nisso como adicionar um prato novo no cardápio do restaurante, mas ainda não servimos para o cliente.

O comando é sudo xrandr --newmode seguido do texto que você copiou no passo anterior.

sudo xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

Se você der Enter e nada acontecer (nenhuma mensagem de erro), parabéns. No Linux, o silêncio significa sucesso.

Passo 4: Associando ao Monitor (--addmode)

O prato está no cardápio (sistema), mas o garçom (monitor) ainda não sabe que pode servi-lo. Precisamos associar a nova resolução (1600x900_60.00) ao seu monitor (HDMI-1 ou o nome que você achou no Passo 1).

# Sintaxe: xrandr --addmode [SEU_MONITOR] [NOME_DA_RESOLUCAO]
sudo xrandr --addmode HDMI-1 "1600x900_60.00"

Agora a mágica acontece. Se você for nas Configurações > Telas (Settings > Displays) do Ubuntu, a nova resolução 1600x900 estará lá na lista, pronta para ser selecionada!

Passo 5: Tornando Permanente (~/.profile)

Aqui está o “pulo do gato”. Tudo o que fizemos até agora reside na memória RAM. Se você reiniciar o computador, o Linux esquece essa resolução nova e volta para a estaca zero.

Para tornar permanente, precisamos dizer ao Linux para rodar esses comandos toda vez que você fizer login. Vamos editar o arquivo .profile (um script oculto que roda no início da sua sessão).

  1. Abra o arquivo no editor de texto do terminal:
nano ~/.profile
  1. Use as setas do teclado para ir até a última linha do arquivo.
  2. Adicione exatamente os comandos que usamos nos passos 3 e 4 (sem o sudo, pois o script roda com suas permissões de usuário, e xrandr de sessão não precisa de root).

Exemplo do que adicionar no final do arquivo:

# Meus Ajustes de Monitor
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode HDMI-1 "1600x900_60.00"
  1. Para salvar: Pressione Ctrl+O, depois Enter.
  2. Para sair: Pressione Ctrl+X.

Pronto! Agora, toda vez que você ligar o computador, seu Ubuntu vai “lembrar” que essa resolução existe e aplicá-la se necessário.

Resumo da Ópera

Não aceite o “não” do seu hardware. Com cvt você desenha a planta, e com xrandr você constrói a resolução. O terminal nos dá o controle que as interfaces gráficas às vezes escondem.

🏗️ Construindo em Público: Este blog é um laboratório vivo. Se você tem curiosidade sobre as ferramentas que escolhi para manter este site leve e minimalista, veja como tudo começou no post de setup inicial.