Como você usa um tablet Android como segundo monitor?

53

Tenho notado pessoas usando um produto para Windows e Mac chamado iDisplay que permite usar seu Android ou iPad como exibição secundária. Esta parece ser uma ótima idéia, e algo que poderia ser feito no Ubuntu. Infelizmente, não tenho ideia de como começar.

Como você pode recriar essa configuração no Ubuntu?

    
por Mark B 01.03.2011 / 18:55

13 respostas

28

Obtenha um cliente VNC para Android, inicie uma nova sessão do servidor VNC no seu computador (não apenas compartilhe a exibição atual - use vnc4server não x11vnc), conecte-se a ela a partir do cliente Android VNC e ) compartilhe o teclado e o mouse do PC entre as duas sessões usando a sinergia.

Todo o software necessário para fazer isso está disponível nos repositórios padrão para o 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 eu 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.

Esteja ciente também de que a sinergia e o vnc não usam criptografia por padrão, então você precisa encapsular as conexões se não estiver em uma rede confiável.

    
por Alistair Buxton 18.03.2011 / 05:11
14

tl; dr: xrandr --fb e x11vnc --clip juntos formam um combo matador.

O tópico linkado pelo recognitium tem uma idéia muito interessante, não tenho certeza se ele quis dizer isso porque eu não consegui encontrar o autor que ele indicou e também porque eu segui o post no fórum lá, eu vou postar isso separadamente e não como uma edição:

  1. 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 mais de VNC tenha resolução de tela de 1280x1024 e deseje que a tela estendida esteja à direita tela principal. A tela virtual precisa ser 1280x800 + 1280x1024 = 2560x1024 . (estenda-o horizontalmente e faça a resolução vertical o maior dos dois) Então, execute xrandr --fb 2560x1024 .

  2. Agora, que a tela é maior do que o monitor principal, você deve garantir que não haja nenhum movimento panorâmico ou qualquer outro "recurso" indesejado ativado e que as coordenadas do canto superior esquerdo do monitor principal sejam 0x0.

  3. x11vnc -clip 1280x1024+1281+0 plus adiciona outras opções x11vnc para provar:)

Deve ser isso.

    
por chx 13.01.2013 / 01:34
12
  1. Instale vnc4server e x2x .
  2. Em seguida, configure um arquivo .vnc/xstartup config. O meu parece com isso

    #!/bin/sh
    # Uncomment the following two lines for normal desktop:
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    # exec /etc/X11/xinit/xinitrc
    
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    #vncconfig -iconic &
    #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    #x-window-manager &
    exec gnome-session
    

    Ele inicia o desktop gnome-fallback (não sei como fazer o lançamento do gnome 3 no vnc).

  3. Para iniciar o servidor vnc, use o comando vnc4server -geometry 800x480 . É claro que, em vez de 800 x 480, você precisa definir a resolução do seu tablet.
  4. Iniciar x2x -east -to :1 . Esse comando diz ao seu computador para agir como se o display: 1 estivesse à direita da tela (use a opção -west se você quiser que ele esteja à esquerda). Você não poderá mover aplicativos de um monitor para outro, mas poderá usar um mouse e um teclado para controlá-los.
  5. Conecte-se à exibição criada com vnc4server de seu tablet (o número da porta é 5900 + número de exibição (por exemplo, para exibição: 1 número de porta será 5901) (o número de exibição é exibido na saída de vnc4server ) ).
  6. Para sair de x2x , pressione Ctrl-C . Como alternativa, você pode iniciá-lo em segundo plano ( x2x -east -to :1 & ). Então você primeiro precisará movê-lo para primeiro plano ( fg ), ou eliminá-lo com kill $! (seja cauteloso, ele mata o último processo lançado em segundo plano).
  7. Para remover a exibição criada, chame vnc4server -kill :1 , onde, em vez de :1 , você pode definir o novo número da sua exibição.
por passick 11.06.2013 / 09:19
9

Não foi possível fazer as outras respostas funcionarem, exceto este , que funcionou perfeitamente. Aqui está um tutorial passo a passo, solicitado pelos comentários.

Tutorial

1. Crie um monitor

(Aviso: altere 1280 e 1024 para alterar a configuração de resolução padrão de 1280x1024. Você também pode precisar alterar LVDS1 se o nome do monitor padrão for diferente).

Executar no terminal:

  1. $ gtf 1280 1024 60 .

Existe 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 depois da palavra Modeline (exclua) no próximo comando.

  1. xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync

  2. xrandr --addmode VIRTUAL1 1280x1024_60.00

  3. xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

2. Iniciar VNC

  1. x11vnc -clip 1280x1024+0+0

3. Conecte-se com o Android (LAN (Wi-Fi) ou USB (cabo))

  1. Encontre o IP do seu computador usando ifconfig (ao se conectar da LAN).

  2. Faça o download de um aplicativo VNC e conecte-se ao computador usando seu IP (e selecionando a porta 5900 ) no aplicativo.

Avisos

  • Créditos: kjans , conteúdos editados.
  • AVISO : os dados não são criptografados! (Relevante para uso Wi-Fi e não-LAN)
  • AVISO : Qualquer rede conectada que possa alcançar a porta 5900 pode se conectar ao seu monitor! (Não é um problema se estiver usando USB E restringindo interface adicionando -listen <IP_ADDR> opção para x11vnc (onde <IP_ADDR> é o endereço do computador na rede que você quer dar acesso exclusivo))
  • A execução de qualquer uma das etapas de 1 a 4 vezes pode gerar erros.
  • Após o uso bem-sucedido, 5. a etapa deve ser repetida para outra conexão.

B. Script

O tutorial implementado como um script (Altere o IP para uso com o cabo USB OU exclua-o e descomente a linha a ser usada com o Wi-Fi).

#!/bin/bash
W=1280
H=800
O=VIRTUAL1
if [ "" == "create" ]; then
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | xargs xrandr --newmode
    # sed: get third line, delete 'Modeline', get first word, remove first and last characters
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print ;}' | sed 's/^.\(.*\).$//' | xargs xrandr --addmode $O
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print ;}' | sed 's/^.\(.*\).$//' | xargs xrandr --output $O --left-of LVDS1 --mode
elif [ "" == "on" ]; then
    x11vnc -listen 192.168.42.149 -clip ${W}x${H}+0+0
    # For use in Wi-Fi LAN.
    #x11vnc -clip ${W}x${H}+0+0 #**WARNING** Unencrypted stream. VNC accessible without password through port 5900 in all internet interfaces.
else
    echo "missing argument: [create | on]"
fi
    
por Prometheus 26.03.2016 / 19:53
7

Isto é, em princípio, possível usando xdmx (multihead distribuído X) que permite criar uma única área de trabalho usando dois X-servers em máquinas separadas.

três cenários são possíveis em princípio, mas nenhum é tão simples quanto o iDisplay, porque todos eles exigem que você reinicie sua sessão X pelo menos. Eu não consegui trabalhar perfeitamente, mas estou executando o Ubuntu 10.10 e não posso atualizar por várias razões. Os três são:

1: execute um X-server no android (há dois disponíveis agora na loja de aplicativos) 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 movido para a parte do tablet da área de trabalho.

2: execute um segundo X-server com o vnc backend no seu computador, use o xdmx para combiná-lo em um desktop com a tela do seu computador, então olhe para a parte virtual com um visualizador vnc no tablet - não funcionou porque o xdmx requer que todos os x-servers tenham as mesmas cores visuais, o que não é o caso do vncserver e da tela real, e eu não consegui convencer o vncserver a mudar.

3: execute dois vncservers, um para cada tela, conecte-os com o xdmx e observe cada parte com um vncviewer na respectiva máquina. - Isso chegou o mais perto de trabalhar para mim, infelizmente, a inpout foi confusa. também foi bastante lento em cores reais via wifi. Eu usei este script para iniciar o xdmx e o vncs:

#!/bin/sh 
vncserver :2 -geometry 1024x768 -depth 24 && \
vncserver :3 -geometry 1920x1120 -depth 24 && \
startx -- \
/usr/bin/X11/Xdmx :1 \
-input :2 \
-display :2 \
-display :3 \
-ignorebadfontpaths \
-norender \
-noglxproxy \
+xinerama \
-nomulticursor
vncserver -kill :2 
vncserver -kill :3

YMMV

    
por Felix 16.09.2012 / 21:41
2

Eu uso o driver fictício xorg e x11vnc -clip. O ponto do mouse não está preso na borda.

sudo apt-get install xserver-xorg-video-dummy

Existe o /etc/X11/xorg.conf para o driver fictício na segunda tela:

Section "Device"
        Identifier      "Configured Video Device"
    Driver "radeon"         #CHANGE THIS
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection


##Xdummy:##
Section "Device"
  Identifier "Videocard0"
  Driver "dummy"
  #VideoRam 4096000
  VideoRam 256000
EndSection

##Xdummy:##
Section "Monitor"
  Identifier "Monitor0"
#  HorizSync   10.0 - 300.0
#  VertRefresh 10.0 - 200.0
#  DisplaySize 4335 1084
EndSection

##Xdummy:##
Section "Screen"
  Identifier "Screen0"
  Device "Videocard0"
  Monitor "Monitor0"
EndSection



Section "ServerLayout"
  Identifier   "dummy_layout"
  Screen       0 "Default Screen"
  Screen       1 "screen0" rightof "Default Screen"
    Option         "Xinerama" "1"
EndSection

Em seguida, faça o login na sessão X e execute:

x11vnc -clip 1024x768+1280+0
    
por mirage 08.02.2013 / 22:25
2

Eu fiz um script simples para fazer um tablet em um segundo monitor. Copie o ipad_monitor.sh (não se preocupe, ele também funciona com o Android) na minha postagem do blog .

O que é diferente do outro post é que você pode definir a posição da segunda tela com argumento adicional com muita facilidade.

Editar: 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 ideia básica deste script é a mesma dos outros, executando xrandr e x11vnc , mas incluí opções como o lado que você gostaria de anexar à tela.

#!/bin/sh
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <[email protected]> wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Bumsik Kim
# ----------------------------------------------------------------------------

# Configuration
WIDTH=1024  # 1368 for iPad Pro
HEIGHT=768  # 1024 for iPad Pro
MODE_NAME="mode_ipad"       # Set whatever name you like, you may need to change
                            # this when you change resolution, or just reboot.
DIS_NAME="VIRTUAL1"         # Don't change it unless you know what it is
RANDR_POS="--right-of"      # Default position setting for xrandr command

# Parse arguments
while [ "$#" -gt 0 ]; do
  case  in
    -l|--left)      RANDR_POS="--left-of"  ;;
    -r|--right)     RANDR_POS="--right-of" ;;
    -a|--above)     RANDR_POS="--above"    ;;
    -b|--below)     RANDR_POS="--below"    ;;
    -p|--portrait)  TMP=$WIDTH; WIDTH=$HEIGHT; HEIGHT=$TMP
                    MODE_NAME="$MODE_NAME""_port"  ;;
    -h|--hidpi)     WIDTH=$(($WIDTH * 2)); HEIGHT=$(($HEIGHT * 2))
                    MODE_NAME="$MODE_NAME""_hidpi" ;;
    *) echo "'' cannot be a monitor position"; exit 1 ;;
  esac
  shift
done

# Detect primary display
PRIMARY_DISPLAY=$(xrandr | perl -ne 'print "" if /(\w*)\s*connected\s*primary/')

# Add display mode
RANDR_MODE=$(cvt "$WIDTH" "$HEIGHT" 60 | sed '2s/^.*Modeline\s*\".*\"//;2q;d')
xrandr --addmode $DIS_NAME $MODE_NAME 2>/dev/null
# If the mode doesn't exist then make mode and retry
if ! [ $? -eq 0 ]; then
  xrandr --newmode $MODE_NAME $RANDR_MODE
  xrandr --addmode $DIS_NAME $MODE_NAME
fi

# Show display first
xrandr --output $DIS_NAME --mode $MODE_NAME
# Then move display
sleep 5 # A short delay is needed. Otherwise sometimes the below command is ignored.
xrandr --output $DIS_NAME $RANDR_POS $PRIMARY_DISPLAY

# Cleanup before exit
function finish {
  xrandr --output $DIS_NAME --off 
  xrandr --delmode $DIS_NAME $MODE_NAME
  echo "Second monitor disabled."
}

trap finish EXIT

# Get the display's position
CLIP_POS=$(xrandr | perl -ne 'print "" if /'$DIS_NAME'\s*connected\s*(\d*x\d*\+\d*\+\d*)/')
echo $CLIP_POS
# Share screen
x11vnc -multiptr -repeat -clip $CLIP_POS
# Possible alternative is x0vncserver but it does not show the mouse cursor.
#   x0vncserver -display :0 -geometry $DIS_NAME -overlaymode -passwordfile ~/.vnc/passwd
if ! [ $? -eq 0 ]; then
  echo x11vnc failed, did you \'apt-get install x11vnc\'?
fi
    
por Bumsik Kim 17.04.2018 / 19:06
1

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 estes passos no Mageia3 32Bit (não tentei 64bits) mas deveria ser similar para outras distros também (isto é, Ubuntu).

Verifique se você tem todos os pacotes necessários com o seguinte comando do terminal:

sudo apt-get install gcc autoconf automake x11-font-util libtool libxi-devel ibopenssl-devel libxfont1-devel libpam-devel x11-util-macros x11-xtrans-devel x11-server-xvfb x11-server-xdmx x11-server-devel x11-server-source

Depois de ter todos os pacotes acima, emita estes comandos:

cd /usr/share/x11-server-sources/
./autogen.sh
./configure --with-fontrootdir=/usr/share/fonts --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/usr/share/X11/xkb/compiled --enable-dmx
make

Se você não receber nenhum erro, remova o Xdmx (simplesmente, ele está "quebrado" há algum tempo):

abra /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c e altere a linha 730:  mude isto:

POINTER_ABSOLUTE | POINTER_SCREEN, &mask);

para isso:

POINTER_RELATIVE | POINTER_DESKTOP, &mask);

Se a linha 730 for diferente, use esta seção para encontrar a linha correta: Seção original - linha a ser alterada com *

    case ButtonPress:
    case ButtonRelease:
        detail = dmxGetButtonMapping(dmxLocal, detail);
        valuator_mask_zero(&mask);
        QueuePointerEvents(p, type, detail,
 *                         POINTER_RELATIVE | POINTER_DESKTOP, &mask);
        return;

Verifique sua versão do Xdmx executando ./configure --version em /usr/share/x11-server-source/ , para Xdmx 1.13 e mais antigo você também precisará fazer essas alterações (para 1.14 e mais recente você pode pular para o "make" passo abaixo):

aberto /usr/share/x11-server-sources/dix/getevents.c , linha 1395:     mude isto:

if (flags & POINTER_SCREEN ) {    /* valuators are in screen coords */

Para isso:

if (flags & ( POINTER_SCREEN | POINTER_DESKTOP) ) {    /* valuators are in screen coords */

(Seção original - linha a ser alterada com *)

    /* valuators are in driver-native format (rel or abs) */

    if (flags & POINTER_ABSOLUTE) {
*       if (flags & POINTER_SCREEN ) {    /* valuators are in screen coords */
            sx = valuator_mask_get(&mask, 0);
            sy = valuator_mask_get(&mask, 1);

aberto /usr/share/x11-server-sources/Xext/xtest.c , linha 311:     mude isto:

flags = POINTER_ABSOLUTE | POINTER_SCREEN;

para isso:

flags = POINTER_ABSOLUTE | POINTER_DESKTOP;

(seção original - linha a ser alterada com *)

       case MotionNotify:
            dev = PickPointer(client);
            valuators[0] = ev->u.keyButtonPointer.rootX;
            valuators[1] = ev->u.keyButtonPointer.rootY;
            numValuators = 2;
            firstValuator = 0;
            if (ev->u.u.detail == xFalse)
*               flags = POINTER_ABSOLUTE | POINTER_DESKTOP;
            break;

/usr/share/x11-server-sources/include/input.h , linha 73: Adicione esta linha após a linha que começa com #define POINTER_EMULATED :

#define POINTER_DESKTOP         (1 << 7)

Depois de fazer as alterações acima, execute novamente (em /usr/share/x11-server-sources/ ):

make

Você deve ter um novo arquivo Xdmx em /usr/share/x11-server-sources/hw/dmx/ . Precisamos instalar isso globalmente para facilitar, por isso recomendo renomear a existente:

sudo mv /bin/Xdmx /bin/Xdmx-old

e copie o novo no lugar dele:

cp /usr/share/x11-server-sources/hw/dmx/Xdmx /bin

Agora você está pronto para fazer sua primeira avaliação, os comandos a seguir permitem que você mantenha sua exibição principal / existente em execução ( :0 ) e abra uma nova exibição com o suporte a vários monitores. Eu estou usando o icewm com esses comandos para torná-lo um pouco mais leve (eu uso o KDE no meu monitor principal :0 e abro qualquer aplicativo de vários monitores grandes no novo monitor com várias cabeças). Você pode roteirizar definitivamente estes comandos para facilidade de uso (é o que eu fiz) - Qualquer um desses comandos pode ser executado em console e / ou janela de terminal de qualquer display, o único requisito é que eles sejam executados em ordem.

Este comando cria sua nova exibição como um buffer de quadros para sua exibição VNC :2 (ajuste o tamanho da tela conforme desejado):

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &

Isso inicia uma nova sessão X leve em sua exibição física como exibição :1 (existem diferentes maneiras de fazer isso):

startx 'icewm' -- :1

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:

Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm

Agora abra uma janela de terminal e inicie o servidor vnc (altere a senha conforme desejado):

x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe &

A única coisa que resta fazer agora é acionar seu cliente VNC e conectar-se ao seu VNC - você pode precisar desabilitar ou adicionar uma exceção ao seu firewall à porta 5900 para que você possa se conectar para isso. Outra coisa 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 segundo monitor virtual (além de poder usar o tablet para clicar / digitar em coisas no segundo monitor).

Para fechar o Xdmx pressione Ctrl + Alt + Backspace duas vezes.

Automação:

Eu uso este script bash para iniciar todo o processo (também mata o Xvfb ao sair):

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &
xinit dual -- :1
ps | grep Xvfb | awk '{print }' | xargs kill

Então eu tenho um arquivo ~/.xinitrc personalizado com isto:

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [[  == "" ]]
then
  exec startkde 
elif [[  == "xterm" ]]
then
  exec xterm
elif [[  == "dual" ]]
then
  exec Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm & x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe
else
  exec 
fi

Solução de problemas:

  • Ao executar o Xdmx se você receber um erro dizendo sh: /usr/local/bin/xkbcomp: No such file or directory , talvez seja necessário executar: cd /usr/local/bin" and "ln -s /bin/xkbcomp e, em seguida, tente Xdmx novamente.

  • Ctrl + Alt + F1 a F7 deve funcionar no Xdmx para mudar para outros consoles / xsessions mas, por alguma razão, isso não funciona, o que eu faço é simplesmente executar sudo chvt X (onde X é um número console / xsession) para mudar para o meu display principal. Além disso, quando você voltar para o Xdmx, você pode obter alguns problemas de desenho em qualquer janela aberta, basta clicar na barra de tarefas para ocultar / mostrar a janela novamente forçando um redesenho.

por LinuxNewb 10.01.2014 / 02:01
0

Obrigado pelo tutorial pessoal, vou compartilhar o que funcionou para mim no Ubuntu 14.04

Obtenha AndroidVNC aqui para o seu tablet

Obtenha o x11vnc para o seu PC Ubuntu rodando

sudo apt-get install x11vnc

Eu tive que usar o método do driver dummy do Xorg. Aqui está como meu arquivo /etc/X11/xorg.conf se parece:

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
**Screen        1  "Screen1" rightof "Screen0"**
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
**Option         "Xinerama" "1"**
EndSection

Section "Files"
ModulePath   "/usr/lib/xorg/modules"
FontPath     "/usr/share/fonts/X11/misc"
FontPath     "/usr/share/fonts/X11/cyrillic"
FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/Type1"
FontPath     "/usr/share/fonts/X11/100dpi"
FontPath     "/usr/share/fonts/X11/75dpi"
FontPath     "built-ins"
EndSection

Section "Module"
Load  "glx"
EndSection

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option      "Protocol" "auto"
Option      "Device" "/dev/input/mice"
Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
Identifier   "Monitor0"
VendorName   "Monitor Vendor"
ModelName    "Monitor Model"
DisplaySize 1680 1050
EndSection

**Section "Monitor"
Identifier "Monitor1"
VendorName "Dummy"
ModelName "Dummy"
DisplaySize 2704 1050
EndSection**

Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
    ### <percent>: "<f>%"
    ### [arg]: arg optional
    #Option     "NoAccel"               # [<bool>]
    #Option     "SWcursor"              # [<bool>]
    #Option     "EnablePageFlip"        # [<bool>]
    #Option     "ColorTiling"           # [<bool>]
    #Option     "ColorTiling2D"         # [<bool>]
    #Option     "RenderAccel"           # [<bool>]
    #Option     "SubPixelOrder"         # [<str>]
    #Option     "AccelMethod"           # <str>
    #Option     "EXAVSync"              # [<bool>]
    #Option     "EXAPixmaps"            # [<bool>]
    #Option     "ZaphodHeads"           # <str>
    #Option     "EnablePageFlip"        # [<bool>]
    #Option     "SwapbuffersWait"       # [<bool>]
Identifier  "Card0"
Driver      "radeon"
BusID       "PCI:1:0:0"
EndSection

**Section "Device"
  Identifier "Dummy"
  Driver "dummy"
EndSection**

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
SubSection "Display"
    Viewport   0 0
    Depth     1
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     4
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     8
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     15
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     16
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     24
EndSubSection
EndSection

**Section "Screen"
Identifier "Screen1"
Device "Dummy"
Monitor "Monitor1
EndSection**

Você provavelmente não precisará de tudo lá, apenas execute o X -configure para obter o autoconfig do seu sistema e adicione as seções fictícias (coisas entre os asteriscos) em seu arquivo. Resolução para 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. Reinicie o servidor X / Reinicialize / Puxe a tomada, o que for combina com você mais:).

Execute o x11vnc fazendo

x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0

Aqui, a resolução deve ser a largura do tablet x altura do tablet + largura do display principal + 0

Conecte-se ao seu PC usando o cliente androidVNC, certifique-se de ativar a opção localmouse. Isso deve ser isso, agora sinto a estranheza de ter o Linux rodando sobre o Android:)

    
por Mathieu Grenier 18.08.2015 / 23:58
0

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 pacote vncserver , mas a tela ficaria preta e eu teria que reiniciar o gdm para que tudo funcionasse novamente. Eu mudei para tightvncserver e funcionou pela primeira vez sem configuração.

Para compartilhar o mouse / teclado entre as telas, usei x2vnc . Isso também pode ser usado com win2vnc para compartilhar o mouse / teclado com um PC Windows ao lado do seu PC com Linux.

Comandos finais:

sudo apt-get install tightvncserver
tightvncserver
sudo apt-get install x2vnc
x2vnc -east localhost:1

Neste ponto, você deve conseguir 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, defina DISPLAY e, em seguida, execute o comando. Por exemplo, para abrir xterm na "tela" do VNC, execute:

export DISPLAY=:1
xterm

Usando essa abordagem, a segunda tela é bem lenta. Ainda assim, muitas das outras opções que eu tentei acabaram em becos sem saída, e esta funcionou sem nenhuma configuração.

    
por thirdender 24.11.2016 / 21:30
0

Para alguém que ainda esteja se perguntando sobre esse tópico: o clipe xrandr e x11vnc funciona; para habilitar o mouse para chegar até lá, você precisa usar o argumento pan para definir a área de rastreamento do mouse:

xrandr --fb 2560x1024 --output LVDS1 --panning 1280x1024+0+0/2560x1024+0+0

Em seguida, quando executar xvnc use:

x11vnc -clip 1280x1024+1281+0 -nocursorshape -nocursorpos

Isso impede que o VNC tente usar o próprio rastreamento do cursor e pinta o cursor como parte da imagem da tela.

Eu fiz anotações aqui link

    
por Mike Dawson 24.04.2015 / 14:56
0

TL; DR :

    $ sudo apt-get install x11vnc
    $ WINDOW_ID=$(xwininfo | awk '/Window.id/{print }') && x11vnc -viewonly -nopw -avahi -id $WINDOW_ID >/dev/null 2>&1 &

Agora, basta clicar na janela que você deseja compartilhar.

FULL :

Eu tenho um iPad e Chromebook e gostaria de usá-los como meus monitores, apenas para usar alguns comandos de terminal htop , iptstate , nmon , etc. Então, eu sou um cara preguiçoso e fiz isso usando:

  1. Instalação do pacote: sudo apt-get install x11vnc
  2. Abra um terminal e coloque xwininfo | awk '/Window.id/{print }' e clique na janela que você deseja compartilhar. A saída será algo como:

    $ xwininfo | awk '/Window.id/{print }'
    0x4402f34
    
  3. Agora você pode iniciar sua sessão x11vnc :

    $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
    
  4. Redimensione a janela (0x4402f34) para obter a melhor imagem possível.

Mente a porta associada da sessão : 5900 -> :0 , 5901 -:1 , 5902 -> :2 ...

Além disso, funciona bem com aplicativos X11: Firefox, OpenOffice, etc.

    
por Antonio Feitosa 28.02.2017 / 20:40
0

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. Até suporta conexões de dispositivos Android usando um cabo USB.

    
por Falko Menge 04.07.2017 / 19:33