Notei pessoas usando um produto para Windows e Mac chamado iDisplay, que permite usar o Android ou iPad como um monitor secundário. Parece uma ótima idéia e algo que pode ser feito no Ubuntu. Infelizmente, não tenho ideia de como começar.
Como você pode recriar essa configuração no Ubuntu?
multiple-monitors
android
Mark B
fonte
fonte
Respostas:
Obtenha um cliente VNC para Android, inicie uma nova sessão do servidor VNC no seu computador (não compartilhe apenas a exibição atual - use vnc4server e não x11vnc), conecte-a a partir do cliente VNC Android e (o mais inteligente) compartilhe o Teclado e mouse para PC entre as duas sessões usando sinergia.
Todo o software necessário para fazer isso está disponível nos repositórios padrão do lado do Ubuntu, e há alguns clientes VNC gratuitos disponíveis para Android no mercado.
Você não poderá arrastar janelas pelas telas usando esse método. Para isso, acho que você precisaria usar o Xdmx para unir as duas sessões. Isso é muito mais difícil e provavelmente faria com que você perdesse a aceleração 3D.
Lembre-se também de que a sinergia e o vnc não usam criptografia por padrão; portanto, você precisa encapsular as conexões se não estiver em uma rede confiável.
fonte
tl; dr:
xrandr --fb
ex11vnc --clip
juntos fazem um combo matador.O tópico vinculado pelo reconhecitium tem uma ideia realmente interessante, não tenho certeza se ele quis dizer este porque não consegui encontrar o autor que ele indicou e também porque segui o post do fórum lá, publicarei separadamente e não como uma edição :
Primeiro, vamos supor que a máquina principal tenha uma resolução de tela de 1280x800 e a máquina secundária na qual você deseja estender sua área de trabalho para o VNC tenha uma resolução de tela de 1280x1024 e você deseja que a tela estendida fique à direita da tela principal. A tela virtual precisa ser
1280x800 + 1280x1024 = 2560x1024
. (estenda-o horizontalmente e torne a resolução vertical a maior das duas) Então corraxrandr --fb 2560x1024
.Agora, que a tela é maior que o monitor principal, você deve garantir que não haja movimento panorâmico ou qualquer outro "recurso" indesejado ativado e que as coordenadas do canto superior esquerdo do monitor principal sejam 0x0.
x11vnc -clip 1280x1024+1281+0
além de adicionar outras opções x11vnc a gosto :)Deve ser isso.
fonte
xrandr --fb 2560x1024
não parece ter efeito. O que significa que não posso ter uma tela maior que o tamanho do meu monitor principal ... :(X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30
erro. Meu palpite é que meu laptop não suporta resolução mais alta que a nativa1600*900
. Significando que esta solução não pode funcionar. Vou ter que encontrar uma solução de tela dupla.sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0
(eu estava perdendo a--panning
opção)Não foi possível fazer as outras respostas funcionarem, exceto esta , que se conectou perfeitamente.
Permite usar o Android como um segundo monitor, compartilhar o mouse, arrastar janelas entre o tablet e o computador.
Aqui está um tutorial passo a passo, solicitado pelos comentários.
A. Tutorial
1. Crie um novo monitor virtual
A resolução do meu tablet é 1280x1024. (Você pode mudar
1280
e1024
em todo os comandos se o seu tablet está em resolução diferente. Você também pode precisar de mudarLVDS1
se o nome do monitor padrão é diferente).Execute no terminal:
gtf 1280 1024 60
.Há uma linha na saída semelhante a
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
. Copie tudo após a palavraModeline
(exclua-a) no próximo comando.xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1
2. Inicie o VNC
x11vnc -clip 1280x1024+0+0
3. Conecte-se ao Android (LAN (Wi-Fi) ou USB (cabo))
Encontre o IP do seu computador usando
ifconfig
(ao conectar pela LAN).Baixe um aplicativo VNC e conecte-se ao computador usando seu IP (e selecionando a porta
5900
) no aplicativo.Avisos
-listen <IP_ADDR>
opção de adição de interface de restrição USB ANDx11vnc
(onde<IP_ADDR>
é o endereço do computador na rede que você deseja conceder acesso exclusivo))B. Script
O tutorial implementado como um script (altere o IP para uso com o cabo USB OU exclua-o e remova o comentário da linha a ser usada com Wi-Fi).
fonte
x11vnc -clip 1280x1024+0+0
pode ser substituído porx11vnc -clip xinerama1
. Além disso, isso--left-of LVDS1
não é estritamente necessário se você usar oMonitors
aplicativo de configurações para posicionar o monitor extra onde quiser.xrandr: cannot find output "VIRTUAL1"
foi retornado quando digito o número 3. Alguma idéia?xrandr: cannot find output "VIRTUAL1"
retornado dexrandr --addmode VIRTUAL1 1280x800_60.00
VIRTUAL1
parece ser um espaço reservado para essa saída, não algo presente em um sistema típico.vnc4server
ex2x
.Em seguida, configure um
.vnc/xstartup
arquivo de configuração. O meu fica assimEle lança o desktop gnome-fallback (não sei como fazer o gnome 3 ser lançado no vnc).
vnc4server -geometry 800x480
comando Obviamente, em vez de 800 x 480, você precisa definir a resolução do seu tablet.x2x -east -to :1
. Esse comando diz ao seu computador para agir como se a tela: 1 estivesse à direita da tela (use a-west
opção se desejar que esteja à esquerda). Você não poderá mover aplicativos de um monitor para outro, mas poderá usar um mouse e um teclado para controlar os dois.vnc4server
seu tablet (o número da porta é 5900 + número da tela (por exemplo, para a tela: 1 número da porta será 5901) (o número da tela é mostrado navnc4server
saída do equipamento)).x2x
, pressioneCtrl-C
. Como alternativa, você pode iniciá-lo em segundo plano (x2x -east -to :1 &
). Então você primeiro precisará movê-lo para o primeiro plano (fg
) ou matá-lo comkill $!
(tenha cuidado, pois mata o último processo iniciado em segundo plano).vnc4server -kill :1
onde, em vez de:1
você, defina o número da sua nova tela.fonte
x2x
, encontrar este post pesquisando android x2x no google ... Mas +1 para.vnc/xstartup
, especialmente paraunset DBUS_SESSION_BUS_ADDRESS
!! Post pequeno, mas rico e muito útil, obrigado!Em princípio, isso é possível usando o xdmx (multihead X distribuído), que permite criar uma única área de trabalho usando dois servidores X rodando em máquinas separadas.
Em princípio, três cenários são possíveis, mas nenhum é tão transparente quanto o iDisplay, porque todos exigem a reinicialização da sessão X, pelo menos. Não consegui funcionar perfeitamente, mas estou executando o Ubuntu 10.10 e não posso atualizar por vários motivos. Os três são:
1: execute um servidor X no Android (existem dois disponíveis na App Store) e use o xdmx para combinar com a tela do seu desktop ou laptop. - não funcionou para mim porque o xdmx travou quando o ponteiro foi para a parte da área de trabalho do tablet.
2: execute um segundo servidor X com back-end vnc no computador, use o xdmx para combiná-lo em uma área de trabalho com a tela do computador e veja a parte virtual com um visualizador vnc no tablet - não funcionou para mim porque o xdmx requer que todos os x-servers tenham visuais da mesma cor, o que não é o caso do vncserver e da tela real, e não fui capaz de convencer o vncserver a mudar.
3: execute dois vncservers, um para cada tela, conecte-os ao xdmx e observe cada parte com um vncviewer na respectiva máquina. - Isso chegou mais perto de trabalhar para mim, infelizmente a entrada foi desarrumada. também era bastante lento em cores verdadeiras por wifi. Eu usei esse script para iniciar o xdmx e os vncs:
YMMV
fonte
Eu criei um script bash simples para transformar um tablet em um segundo monitor. Copie
ipad_monitor.sh
(não se preocupe. Ele também funciona com Android) no meu blog .O que é diferente do outro post é que você pode definir a posição da segunda tela com argumentos adicionais com muita facilidade.
Edit: Eu incluí o original
ipad_monitor.sh
aqui. execute este comando como:./ipad_monitor.sh --right
ou./ipad_monitor.sh --left
./ipad_monitor.sh --right --portrait
./ipad_monitor.sh --right --portrait --hidpi
A idéia básica deste script é o mesmo que os outros, correndo
xrandr
ex11vnc
mas eu incluiu opções como qual lado você gostaria de anexar a tela.fonte
Eu uso o driver fictício do xorg e o x11vnc -clip. O ponto do mouse não está preso na borda.
Há o
/etc/X11/xorg.conf
driver for dummy na segunda tela:Então entre na sessão X e execute:
fonte
Estas instruções são para criar uma tela "adicional" para sua máquina Linux usando um tablet ou qualquer computador através de um cliente VNC.
Eu fiz essas etapas no Mageia3 32Bit (não tentei 64 bits), mas também deve ser semelhante para outras distribuições (por exemplo, Ubuntu).
Verifique se você possui todos os pacotes necessários com o seguinte comando do terminal:
Depois de ter todos os pacotes acima, emita estes comandos:
Se você não receber nenhum erro, corrija o Xdmx (basta colocar, ele está "quebrado" há algum tempo):
abra
/usr/share/x11-server-sources/hw/dmx/input/dmxevents.c
e altere a linha 730: altere isto:para isso:
Se a linha 730 for diferente, use esta seção para encontrar a linha correta: Seção original - linha para alterar marcada com *
Verifique sua versão do Xdmx executando
./configure --version
em/usr/share/x11-server-source/
, por Xdmx 1,13 e mais velhos você também tem que fazer essas alterações (de 1,14 e mais recente você pode saltar para o "fazer" passo abaixo):aberto
/usr/share/x11-server-sources/dix/getevents.c
, linha 1395: altere isso:Para isso:
(Seção original - linha a ser alterada marcada com *)
aberto
/usr/share/x11-server-sources/Xext/xtest.c
, linha 311: altere isso:para isso:
(seção original - linha a ser alterada marcada com *)
/usr/share/x11-server-sources/include/input.h
, linha 73: adicione esta linha após a linha que começa com#define POINTER_EMULATED
:Depois de fazer as alterações acima, execute novamente (pol
/usr/share/x11-server-sources/
):Você deve ter um novo arquivo Xdmx no
/usr/share/x11-server-sources/hw/dmx/
. Precisamos instalá-lo globalmente para facilitar, então recomendo renomear o seu já existente:e copie o novo no lugar dele:
Agora você está pronto para fazer sua primeira avaliação, os seguintes comandos permitem manter a tela principal / existente (
:0
) em execução e abrir uma nova tela com o suporte para vários monitores. Estou usando o icewm com esses comandos para torná-lo um pouco mais leve (eu uso o KDE na tela principal:0
e abro qualquer aplicativo grande com vários monitores no novo monitor com várias cabeças). Você pode definitivamente criar um script desses comandos para facilitar o uso (foi o que eu fiz) - Qualquer um desses comandos pode ser executado no console e / ou na janela do terminal de qualquer monitor, o único requisito é que eles sejam executados em ordem.Este comando cria sua nova tela como um buffer de quadro para sua tela VNC
:2
(ajuste o tamanho da tela conforme desejado):Isso inicia uma nova sessão leve do X em sua tela física como tela
:1
(existem diferentes maneiras de fazer isso):Este comando inicia a exibição múltipla entre sua tela física e a tela virtual e inicia o icewm para o gerenciador de janelas:
Agora abra uma janela do terminal e inicie o servidor vnc (altere a senha conforme desejado):
A única coisa que resta a fazer agora é iniciar o seu cliente VNC e conectar-se ao seu VNC - talvez seja necessário desativar ou adicionar uma exceção ao seu firewall na porta 5900 para que você possa se conectar a ele. Outro aspecto a ter em mente é que alguns clientes VNC não exibem a posição do cursor remoto. Certifico que o "Mocha VNC" para iOS funciona muito bem se você desativar a opção "mouse local".
Desfrute de arrastar janelas entre o monitor principal e o novo segundo monitor virtual (além de poder usar o tablet para clicar / digitar itens no segundo monitor).
Para fechar o Xdmx, pressione Ctrl+ Alt+ Backspaceduas vezes.
Automação:
Eu uso esse script bash para iniciar todo o processo (também mata o Xvfb na saída):
Então eu tenho um
~/.xinitrc
arquivo personalizado com isso:Solução de problemas:
Ao executar o Xdmx, se você receber um erro dizendo
sh: /usr/local/bin/xkbcomp: No such file or directory
que pode ser necessário executarcd /usr/local/bin" and "ln -s /bin/xkbcomp
:, tente o Xdmx novamente.CtrlO + Alt+ F1through F7deve funcionar no Xdmx para alternar para outros consoles / xsessions, mas por algum motivo não funcionar, o que faço é simplesmente executar
sudo chvt X
(onde X é um número de console / xsession) para alternar para a tela principal. Além disso, ao voltar para o Xdmx, você pode encontrar alguns problemas de desenho em qualquer janela aberta, basta clicar na barra de tarefas para ocultar / mostrar a janela novamente, forçando um redesenho.fonte
Obrigado pelo tutorial pessoal, vou compartilhar o que funcionou para mim no Ubuntu 14.04
Obtenha o AndroidVNC aqui para o seu tablet
Obtenha o x11vnc para o seu pc Ubuntu executando
Eu tive que usar o método de driver fictício do Xorg. Aqui está a aparência do meu arquivo /etc/X11/xorg.conf:
Você provavelmente não precisará de tudo, basta executar o X -configure para obter a configuração automática do sistema e adicionar as seções fictícias (itens entre os asteriscos) ao seu arquivo. A resolução da tela fictícia no xorg.conf deve ser a largura do monitor principal + a largura da resolução do tablet, no meu caso 1680 + 1024 = 2704 mantenha a altura do monitor principal, 1050 no meu caso. combina com você mais :).
Execute o x11vnc executando
Aqui a resolução deve ser a largura do seu tablet x altura do tablet + largura da tela principal + 0
Conecte-se ao seu PC usando o cliente androidVNC, ative a opção localmouse. Deve ser isso, agora sinta a estranheza de ter o Linux executado no Android :)
fonte
Eu tive muitos problemas com as outras técnicas listadas aqui. Eu gostaria de ter uma solução melhor, mas minha solução lenta e simples é um bom ponto de partida.
Para o servidor VNC, tentei o
vncserver
pacote, mas a tela ficaria preta e eu teria que reiniciargdm
para que tudo funcionasse novamente. Eu mudei paratightvncserver
e funcionou pela primeira vez sem nenhuma configuração.Para compartilhar o mouse / teclado entre as telas, usei x2vnc . Isso também pode ser usado com o win2vnc para compartilhar o mouse / teclado com um PC com Windows próximo ao seu PC com Linux.
Comandos finais:
Nesse ponto, você poderá abrir a segunda tela em um programa VNC conectando-se a
YOUR_IP_ADDRESS:1
. Para iniciar um programa na tela VNC, abra um terminal, definaDISPLAY
e execute o comando. Por exemplo, para abrirxterm
na "tela" do VNC, execute:Usando essa abordagem, a segunda tela é bem lenta. Ainda assim, muitas das outras opções que tentei chegaram a becos sem saída, e essa funcionou sem nenhuma configuração.
fonte
Para quem ainda está se perguntando sobre esse tópico: o clipe xrandr e x11vnc funciona; para permitir que o mouse chegue lá, você precisa usar o argumento de deslocamento para definir a área de rastreamento do mouse:
Então, ao executar o xvnc, use:
Isso impede que o VNC tente usar seu próprio rastreamento de cursor e pinta o cursor como parte da imagem da tela.
Fiz anotações aqui http://mikescodeoddities.blogspot.ae/2015/04/android-tablet-as-second-ubuntu-screen.html
fonte
TL; DR :
Agora, basta clicar na janela que deseja compartilhar.
COMPLETO :
Eu tenho um iPad e Chromebook e eu gostaria de usá-los como meus monitores, apenas para USO alguns comandos do terminal
htop
,iptstate
,nmon
, etc. Então, eu sou preguiçoso e fiz isso usando:sudo apt-get install x11vnc
Abra um terminal e coloque
xwininfo | awk '/Window.id/{print $4}'
e clique na janela que deseja compartilhar. A saída será algo como:Agora você pode iniciar sua
x11vnc
sessão:Redimensione a janela (0x4402f34) para ter a melhor imagem possível.
Cuidado com o associado porta de sua sessão :
5900 -> :0
,5901 -:1
,5902 -> :2
...Além disso, funciona bem com aplicativos X11: Firefox, OpenOffice, etc.
fonte
Use vnc_virtual_display_linker
A ferramenta configura um segundo monitor virtual para conexão com o VNC, conforme descrito em muitas das respostas anteriores. Ele ainda suporta conexões de dispositivos Android usando um cabo USB.
fonte