:. X2vnc: Dois PCs, um só teclado e mouse.

 Por Carlos E. Morimoto
 http://www.guiadohardware.net
 04/10/2002


O uso de dois monitores é um recurso já bastante conhecido e cada vez mais popular. Também já publiquei vários artigos sobre como utilizar ao mesmo tempo dois PCs, através de uma conexão do VNC ou do X.

Que tal então juntar as duas coisas? Ter ao mesmo tempo dois PCs, com a possibilidade de rodar dois sistemas operacionais diferentes e ao mesmo tempo toda a praticidade de um sistema dual monitor, onde basta arrastar o mouse para o canto da tela para que o cursor e o teclado passem a atuar sobre o segundo monitor?

Nesta foto temos à esquerda um PC com o Mandrake 8.2 e à direita outro com o Windows 2000, mas isto não é obrigatório. Você pode ter dois PCs rodando Linux, dois PCs com o Windows ou ainda um PC com o Linux com um Mac ao lado. É possível ainda ter três ou até quatro PCs, para literalmente ser "envolvido" pelos monitores :-)

Muita gente usa o VMWare ou o Win4lin para rodar dois sistemas operacionais ao mesmo tempo, mesmo que sacrificando parte do desempenho. Este recurso é um passo adiante por permite ter ao mesmo tempo dois sistemas operacionais completos, sem nenhum tipo de limitação e ao mesmo tempo um aumento de desempenho, já que cada um tem seu próprio PC e você pode distribuir seus aplicativos entre eles.

O primeiro passo é ligar os dois PCs em rede e colocar seus monitores lado a lado. Vamos começar pelo uso mais comum, que é ter um PC com o Linux como principal e um PC com o Windows (ou Mac) como secundário.

O primeiro passo é instalar o servidor VNC no PC com o Windows (ou Mac). Tanto faz utilizar o VNC original, quanto o Tight VNC. Não é preciso fazer nenhuma configuração, apenas manter o servidor ativo. Se você não tem muita familiaridade com o uso do VNC, pode dar uma olhada no meu tutorial sobre ele aqui: http://www.guiadohardware.net/tutoriais/66/

Neste caso o VNC não servirá para permitir o acesso remoto, mas sim como uma ponte para que o cursor do mouse chegue à segundo máquina.

Chegamos então à parte B, que é a configuração da máquina Linux que será usada como PC primário. Tudo o que você precisa fazer é instalar um pequeno programa, o x2vnc, que cuida da parte pesada. Você pode baixa-lo no:

http://fredrik.hubbe.net/x2vnc.html

O programa tem apenas 56 kb, só mais um exemplo de que tamanho não é documento :-). Para instala-lo use os comandos:

tar -zxvf x2vnc-1.4.tar.gz (descompacta o pacote)
cd x2vnc-1.4.tar.gz (acessa o diretório criado)
./configure (roda o script de configuração)
make (gere o executável)
su <senha> (para virar root)
make install (finalmente instala o programa)

Feito isso basta acessar o servidor VNC ativo na máquina Windows, usando o comando:

x2vnc 192.168.0.3:0

Substituindo naturalmente o 192.168.0.3 pelo endereço IP correto. O ":0" indica que o programa acessará a tela principal do VNC, que é justamente o que queremos.

Pronto, estabelecida a conexão, basta levar o cursor do mouse até o canto direito da tela e ele automaticamente passa para a tela do micro Windows, e levando-o de volta para a esquerda ele volta ao micro Linux. Naturalmente, o teclado acompanha o rastro do mouse, atuando sobre o PC onde estiver o mouse. É exatamente como ter um PC com dois monitores, mas desta vez com dois PCs.

O que o x2vnc faz é criar uma janela invisível, com um único pixel de largura, posicionada no canto esquerdo da tela. Esta janela captura o rastro do mouse, enviando-o para o servidor VNC ativo no segundo micro que se encarrega de controlar o rastro do mouse na máquina Windows.

Se por acaso o segundo monitor for colocado à esquerda do primeiro, basta incluir a opção "-west" no comando e o mouse mudará de PC ao ser levado para o canto esquerdo da tela:

x2vnc -west 192.168.0.3:0

Você pode usar também as opções "-north" e "-south" que capturam o cursor respectivamente no canto superior e inferior da tela. Não é necessário que os dois PCs usem a mesma resolução de tela. Você pode ter um usando 1024x768 e outro usando 800x600 por exemplo sem problemas. Até a rodinha do mouse funciona normalmente, a única grande limitação é que (assim como nas seções remotas do VNC) a acentuação não funciona no segundo PC.

Já que você controlará o PC Windows através da outra máquina, não há necessidade de manter nem teclado nem mouse instalados. No caso do teclado basta configurar a opção "halt on" do setup com a opção "no errors" e o BIOS deixará de exibir a mensagem de falta do teclado. No caso do mouse existe um pequeno problema no Windows 2000 e XP que faz com que a seta do mouse suma caso não haja um mouse instalado na máquina. O cursor funciona normalmente, mas sem a setinha fica difícil de controlá-lo. Nestes casos você precisa manter um mouse baratinho qualquer conectado para evitar o problema.

Mais alguns parâmetros que podem ser incluídos no comando são:

-shared : permite que o mesmo PC secundário seja usado por mais de um PC. Serviria por exemplo para ter dois PCs, cada um com o seu operador e um terceiro PC entre os dois para uso comum. Lembre-se também que o servidor VNC na máquina Windows também pode aceitar conexões remotas, exibindo a mesma tela. Isto pode ser usado com uma ferramenta de trabalho em grupo.

-hotkey : se você acha incômodo o mouse ir sozinho para o outro monitor ao chegar ao canto da tela, você pode ativar um atalho de teclado para fazer a mudança. O default é ctrl+F12, mas você pode criar um atalho personalizado, incluindo as teclas desejadas no comando, como em: "-hotkey shift-ctrl-F1".

-scrolllines : serve para ajustar a sensibilidade da roda do mouse. A opção "-scrolllines 5" faz com que a tela role 5 linhas a cada passo e assim por diante.

A partir destas opções, você pode criar um comando personalizado que se ajuste melhor às suas necessidades. Pode ser por exemplo "x2vnc -west scrolllines 5 shared 192.168.0.3:0".

Infelizmente, você precisa repetir o comando a cada vez que reiniciar os PCs, mas você pode criar um atalho para facilitar as coisas. No KDE clique sobre a barra de tarefas e em add > special button > non KDE application. Na linha do comando escreva "/usr/local/bin/x2vnc". Na tela de configuração do atalho Marque a opção "roda no terminal" e escreva o restante do comando, incluindo as opções e o endereço da máquina que será contactada. Aproveite para escolher um ícone:

Agora ao clicar sobre o atalho abre-se uma janela de terminal com o comando e você precisa apenas digitar sua senha para se conectar ao segundo micro.

Vamos então à segunda possibilidade, que é ter lado a lado duas máquinas Linux. Neste caso a única mudança é que ao invés de instalar o VNC Server na máquina secundária, você usará o x0rfbserver, que é basicamente um VNC server for Linux que compartilha a tela local ao invés de criar uma nova. Você pode baixa-lo em:

http://www.hexonet.de/software/x0rfbserver/index.html

Para instalá-lo basta descompactar o pacote e rodar os comandos:

make depend
make

Para ativar o servidor use o comando: "x0rfbserver"

Você pode incluir o comando no arquivo "/etc/rc.d/rc.local" para que ele inicialize automaticamente, já que provavelmente o PC não terá teclado nem mouse :-) No PC principal o uso continua exatamente o mesmo, basta dar o comando "x2vnc 192.168.0.3:0", substituindo o 192.168.0.3 pelo IP correto.

Finalmente, caso você queira utilizar duas máquinas Windows, precisará utilizar o Win2VNC. Este programa tem exatamente a mesma função do x2vnc, com a diferença que roda sobre o Windows. Você só precisa instala-lo no PC Windows primário e usá-lo para acessar o VNC Server no PC Windows secundário. Você pode baixa-lo em:

http://fredrik.hubbe.net/win2vnc.html

A última possibilidade seria ter um PC Windows como primário e um PC Linux como secundário. Neste caso você utilizaria o Win2VNC no PC primário, com o Windows e o x0rfbserver no PC secundário com o Linux.