Mostrando postagens com marcador produtividade. Mostrar todas as postagens
Mostrando postagens com marcador produtividade. Mostrar todas as postagens

terça-feira, 24 de junho de 2008

Usando dois monitores no Linux


Depois de muito me matar tentando colocar meu notebook para funcionar com um monitor externo (como extensão do desktop, não como clone; também conhecido como Dual Head), acabei chegando a uma solução muito simples. Segue a solução, para quem sabe servir a alguém mais.

O processo foi realizado no Kubuntu 7.10, mas deve funcionar em outros sistemas (o guia que eu tomei como base era para o Debian; clique aqui para lê-lo).

Monitor LCD

Hardware usado

O hardware usado:

  • Notebook com placa de video Intel 915GM
  • Um velho monitor LG de 15" de tubo
Um detalhe a se notar é que as resoluções máximas da tela do notebook e do monitor externo são diferentes (1280x800 e 1024x768 respectivamente).

Como fazer?

  • Faça um backup do arquivo de configuração do Xorg (/etc/X11/xorg.conf). Assim, se algo der errado, terá para onde voltar.
  • Se você tem dois monitores lado a lado, digamos, com 1024 pixels de largura em cada, você terá um total de 2048 pixels de largura, e normalmente o X não permite uma coisa dessas. Altere o arquivo xorg.conf adicionando a opção Virtual LARGURA ALTURA (onde LARGURA e ALTURA são as dimensões em pixels do seu desktop virtual) na subseção Display, como no exemplo:
    Section "Screen"
            Identifier      "Default Screen"
            Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
            Monitor         "Generic Monitor"
            DefaultDepth    24
            SubSection "Display"
                    Modes           "1024x768"
                    Virtual         2560 1024
            EndSubSection
    EndSection
        
  • Conecte o cabo do monitor na saída VGA do notebook e reinicie o X (Ctrl+Alt+Backspace faz o serviço).
  • A tela de login deve aparecer com a imagem duplicada na tela do notebook e no monitor, e possivelmente com a resolução errada. Isso é normal, efetue o login.
  • Abra um terminal e execute o comando xrandr -q. Você deve ver informações sobre os monitores, como a seguir:
    $ xrandr -q
    Screen 0: minimum 320 x 200, current 2304 x 800, maximum 2560 x 1024
    VGA connected 1024x768+1280+0 (normal left inverted right) 270mm x 195mm
       1024x768       60.0*+   59.9
       832x624        74.6
       800x600        84.9     72.2     75.0     60.3     59.9     56.2
       640x480        85.0     84.6     75.0     72.8     66.7     60.0
       720x405        69.6
       720x400        70.1
    LVDS connected 1280x800+0+0 (normal left inverted right) 304mm x 190mm
       1024x768       60.0 +
       1280x800       59.9*+   60.0     59.9*
       1280x768       60.0
       800x600        60.3
       640x480        59.9
    TV disconnected (normal left inverted right)
        
  • É agora que vamos ajeitar as coisas. Abra um terminal e execute os comandos:

    $ xrandr --output LVDS --mode 1280x800
    Ajusta a resolução da tela do notebook. Substitua 1280x800 resolução correta

    $ xrandr --output VGA --right-of LVDS
    Posiciona o monitor à direita da tela principal. --right-of pode ser substituído por --left-of, --above ou --below.

    $ xrandr --output VGA --mode 1024x768 --rate 75
    Ajusta a resolução do monitor externo. Note que nesse caso, o refresh rate também é ajustado para 75Hz.
  • Os passos tendo dado certo, você pode criar um script e criar um atalho, ou configurá-lo para ser executado na inicialização do ambiente gráfico (usuários de KDE, salvem o script no diretório ~/.kde/Autostart). Não esqueça de dar permissões de execução ao script (chmod +x SCRIPT).

O que mais dá para fazer?

Além de estender o desktop a mais de um monitor, dá para fazer outras brincadeiras, como inverter ou rotacionar uma das telas, muito útil para quem tem daqueles monitores que podem ser postos na vertical. Veja o manual do xrandr, opção --rotate.

Não sei se é possível trocar o monitor conectado e reconfigurar tudo com o X rodando, mas acredito que não seja possível ainda com a versão do X do Ubuntu 7.10. Talvez isso até já seja possível, mas acredito mais que isso venha a ser possível num futuro próximo (ou até mesmo na versão atual).

Mas tem que ficar executando os comandos toda hora?

Existem tutoriais na internet ensinando como configurar o recurso de dual-head alterando o xorg.conf, e então a configuração fica fixa. Já vi funcionar dessa forma, é verdade. Mas as configurações são meio obscuras, e além de tudo, não consegui fazer funcionar com esse monitor, mesmo seguindo os mesmos passos do outro que funcionou.

Essa configuração com o xrandr, além de ter funcionado comigo de forma simples, ainda tem o benefício de poder alterar as configurações (posição das telas, resolução, refresh rate) em tempo real, sem ter que alterar o arquivo e reiniciar o X (fica mais parecido com a forma que o Windows lida com vários monitores sim, isso é uma boa coisa).

Além do mais, criar um script, como já falei, facilita a vida. Imagine que se você usa em monitores diferentes, ou sem monitor externo, pode ter um script para cada ocasião.

Esse negócio de dois monitores não é frescura?

Não. Pode parecer bobeira, que só é bonitinho de ver funcionar, mas no faz mágica para aumentar sua produtividade. Se tiver condições de ter, experimente. Mas já te adianto que vicia...