Come usi un tablet Android come secondo display?

53

Ho notato persone che usano un prodotto per Windows e Mac chiamato iDisplay che ti consente di utilizzare il tuo Android o iPad come display secondario. Questa sembra una grande idea e qualcosa che potrebbe essere fatto su Ubuntu. Sfortunatamente, non ho idea di come iniziare.

Come potresti ricreare questa configurazione su Ubuntu?

    
posta Mark B 01.03.2011 - 18:55

13 risposte

28

Ottieni un client VNC per Android, avvia una nuova sessione del server VNC sul tuo computer (non limitarti a condividere lo schermo corrente - usa vnc4server not x11vnc), connettiti ad esso dal client Android VNC e (il bit intelligente ) condividere la tastiera e il mouse del PC tra le due sessioni utilizzando la sinergia.

Tutti i software necessari per farlo sono disponibili nei repository standard per Ubuntu e ci sono alcuni client VNC gratuiti disponibili per Android sul mercato.

Non sarai in grado di trascinare finestre sugli schermi usando questo metodo. Per quello penso che avresti bisogno di usare Xdmx per unire le due sessioni. Questo è molto più difficile e probabilmente ti farà perdere l'accelerazione 3D.

Tieni presente che synergy e vnc non utilizzano la crittografia per impostazione predefinita, pertanto devi eseguire il tunneling delle connessioni se non sei su una rete attendibile.

    
risposta data Alistair Buxton 18.03.2011 - 05:11
14

tl; dr: xrandr --fb e x11vnc --clip creano una combo killer.

Il thread collegato da recognitio ha un'idea davvero interessante, non è sicuro se intendesse questo perché non ho trovato l'autore che ha indicato e anche perché ho seguito il post sul forum, lo posterò separatamente e non come una modifica:

  1. In primo luogo, supponiamo che il computer principale abbia una risoluzione dello schermo di 1280x800 e che il computer secondario su cui desideri estendere il desktop su VNC abbia una risoluzione dello schermo di 1280x1024 e desideri che lo schermo esteso sia giusto schermo principale. Lo schermo virtuale deve essere 1280x800 + 1280x1024 = 2560x1024 . (estendilo orizzontalmente e rendi la risoluzione verticale più grande dei due) Quindi esegui xrandr --fb 2560x1024 .

  2. Ora che lo schermo è più grande del monitor principale, devi assicurarti che non vi siano panning o altre "funzioni" indesiderate attivate e che le coordinate dell'angolo in alto a sinistra del monitor principale siano 0x0.

  3. x11vnc -clip 1280x1024+1281+0 plus aggiungi altre opzioni x11vnc a piacere:)

Questo dovrebbe essere.

    
risposta data chx 13.01.2013 - 01:34
12
  1. Installa vnc4server e x2x .
  2. Quindi, imposta un file di configurazione .vnc/xstartup . Il mio sembra così

    #!/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
    

    Viene lanciato il desktop gnome-fallback (non so come far lanciare gnome 3 in vnc).

  3. Per avviare il server vnc, utilizzare il comando vnc4server -geometry 800x480 . Ovviamente, invece di 800x480 devi impostare la risoluzione del tuo tablet.
  4. Avvia x2x -east -to :1 . Quel comando dice al tuo computer di agire come se fosse visualizzato: 1 era stato sulla destra dello schermo (usa l'opzione -west se vuoi che sia sulla sinistra). Non potrai spostare le app da uno schermo all'altro, ma puoi utilizzare un mouse e una tastiera per controllarli entrambi.
  5. Connetti al display creato con vnc4server dal tablet (il numero di porta è 5900 + numero di display (ad es. per display: 1 numero di porta sarà 5901) (il numero di visualizzazione è mostrato nell'output di vnc4server ) ).
  6. Per uscire da x2x , premere Ctrl-C . In alternativa, puoi avviarlo in background ( x2x -east -to :1 & ). Quindi dovrai prima spostarlo in primo piano ( fg ), o ucciderlo con kill $! (sii cauto, uccide l'ultimo processo lanciato in background).
  7. Per rimuovere la visualizzazione creata, chiama vnc4server -kill :1 , dove invece di :1 puoi impostare il numero del nuovo display.
risposta data passick 11.06.2013 - 09:19
10

Impossibile far funzionare le altre risposte, eccetto questo , che ha funzionato perfettamente. Ecco un tutorial passo passo, richiesto dai commenti.

A. Tutorial

1. Crea un monitor

(Avviso: modifica 1280 e 1024 per modificare l'impostazione di risoluzione di 1280x1024 predefinita. Potrebbe anche essere necessario modificare LVDS1 se il nome del monitor predefinito è diverso).

Esegui nel terminale:

  1. $ gtf 1280 1024 60 .

C'è una riga nell'output simile a Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync . Copia tutto dopo la parola Modeline (escludilo) nel comando successivo.

  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. Avvia VNC

  1. x11vnc -clip 1280x1024+0+0

3. Connettiti con Android (LAN (Wi-Fi) o USB (Cavo))

  1. Trova l'IP del tuo computer utilizzando ifconfig (quando ti connetti dalla LAN).

  2. Scarica un'app VNC e connettiti al computer utilizzando l'IP (e selezionando la porta 5900 ) nell'app.

Annunci

  • Crediti: kjans , contenuti modificati.
  • ATTENZIONE : i dati non sono crittografati! (Rilevante per l'utilizzo Wi-Fi e non LAN)
  • ATTENZIONE : qualsiasi rete connessa che può raggiungere la porta 5900 può connettersi al tuo monitor! (Non è un problema se usi USB e limiti l'interfaccia aggiungendo l'opzione -listen <IP_ADDR> a x11vnc (dove <IP_ADDR> è l'indirizzo del computer nella rete a cui vuoi dare accesso esclusivo))
  • L'esecuzione di uno dei passaggi 1 - 4 due volte può causare errori.
  • Dopo l'uso riuscito, il passaggio 5. deve essere ripetuto per un'altra connessione.

B. Script

Il tutorial è stato implementato come uno script (cambia l'IP da usare con il cavo USB OPPURE cancellalo e decommenta la linea da usare con il 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
    
risposta data Prometheus 26.03.2016 - 19:53
7

In linea di principio è possibile utilizzare xdmx (multihead distribuita X) che consente di creare un singolo desktop utilizzando due X-server in esecuzione su macchine separate.

in linea di principio sono possibili tre scenari, ma nessuno è così semplice come iDisplay, perché tutti richiedono il riavvio della sessione X almeno. Non sono stato in grado di funzionare correttamente, ma eseguo Ubuntu 10.10 e non posso aggiornarlo per vari motivi. I tre sono:

1: esegui un X-server su Android (ce ne sono due disponibili nell'app store) e usa xdmx per combinarlo con il tuo desktop o laptop. - Non ha funzionato per me perché xdmx si è arrestato in modo anomalo quando il puntatore si spostava sulla parte tablet del desktop.

2: esegui un secondo server X con il backend vnc sul tuo computer, usa xdmx per combinarlo in un desktop con lo schermo del tuo computer, poi guarda la parte virtuale con un visualizzatore di vnc sul tablet - non ha funzionato per perché xdmx richiede che tutti gli x-server abbiano la stessa grafica a colori, che non è il caso per vncserver e per la visualizzazione reale, e non sono riuscito a convincere vncserver a cambiare.

3: esegui due vncserver, uno per ogni schermata, quindi collegali con xdmx e guarda ciascuna parte con un vncviewer sulla rispettiva macchina. - Questo è venuto più vicino a lavorare per me, purtroppo l'ingresso è stato incasinato. era anche piuttosto lento nel true-color tramite wifi. Ho usato questo script per avviare xdmx e i 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

    
risposta data Felix 16.09.2012 - 21:41
2

Uso il driver dummy xorg e x11vnc -clip. Il punto del mouse non è bloccato sul bordo.

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

C'è il /etc/X11/xorg.conf per il driver fittizio sul secondo schermo:

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

Quindi accedi alla sessione X ed esegui:

x11vnc -clip 1024x768+1280+0
    
risposta data mirage 08.02.2013 - 22:25
2

Ho creato un semplice script bash per rendere un tablet un secondo display. Copia ipad_monitor.sh (non ti preoccupare, funziona anche con Android) nel mio post sul blog .

Ciò che è diverso dall'altro post è che puoi impostare la posizione del secondo schermo con argomenti aggiuntivi molto facilmente.

Modifica: ho incluso l'originale ipad_monitor.sh qui. esegui questo comando come:

  • ./ipad_monitor.sh --right o ./ipad_monitor.sh --left
  • ./ipad_monitor.sh --right --portrait
  • ./ipad_monitor.sh --right --portrait --hidpi

L'idea di base di questo script è la stessa di altre, con xrandr e x11vnc , ma ho incluso opzioni su quale lato desideri collegare lo schermo.

#!/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
    
risposta data Bumsik Kim 17.04.2018 - 19:06
1

Queste istruzioni servono a creare una schermata "aggiuntiva" per la tua macchina Linux usando un tablet o qualsiasi computer tramite un client VNC.

Ho eseguito questi passaggi in Mageia3 32Bit (non ho provato 64 bit) ma dovrei essere simile anche per altre distro (ad esempio Ubuntu).

Assicurati di avere tutti i pacchetti richiesti con il seguente comando di terminale:

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

Una volta che hai tutti i pacchetti di cui sopra, emetti questi comandi:

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 non ricevi errori, applica Xdmx (in poche parole, è stato "rotto" per un po 'di tempo):

apri /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c e cambia linea 730:  cambia questo:

POINTER_ABSOLUTE | POINTER_SCREEN, &mask);

a questo:

POINTER_RELATIVE | POINTER_DESKTOP, &mask);

SE la linea 730 è diversa usa questa sezione per trovare la linea corretta: Sezione originale - riga per cambiare contrassegnata con *

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

Verifica la tua versione di Xdmx eseguendo ./configure --version in /usr/share/x11-server-source/ , per Xdmx 1.13 e più vecchio devi anche apportare queste modifiche (per 1.14 e successivi puoi saltare al "make" passo sotto):

open /usr/share/x11-server-sources/dix/getevents.c , riga 1395:     cambia questo:

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

A questo:

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

(Sezione originale - riga da modificare contrassegnata con *)

    /* 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);

open /usr/share/x11-server-sources/Xext/xtest.c , riga 311:     cambia questo:

flags = POINTER_ABSOLUTE | POINTER_SCREEN;

a questo:

flags = POINTER_ABSOLUTE | POINTER_DESKTOP;

(sezione originale - riga per cambiare contrassegnato con *)

       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 , riga 73: Aggiungi questa riga dopo la riga che inizia con #define POINTER_EMULATED :

#define POINTER_DESKTOP         (1 << 7)

Dopo aver apportato le modifiche precedenti, riesegui (in /usr/share/x11-server-sources/ ):

make

Dovresti avere un nuovo file Xdmx in /usr/share/x11-server-sources/hw/dmx/ . Dobbiamo installarlo a livello globale per comodità, quindi ti consiglio di rinominare quello esistente:

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

e copia quello nuovo al posto di esso:

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

Ora sei pronto per eseguire la tua prima prova, i seguenti comandi ti consentono di mantenere attivo il display principale / esistente ( :0 ) e di aprire un nuovo display con il supporto multi-monitor. Sto usando icewm con questi comandi per renderlo un po 'più leggero (io uso KDE sul mio display principale :0 e apro qualsiasi applicazione multi-monitor grande nel nuovo display multi-head). Si può sicuramente scrivere questi comandi per facilitarne l'uso (è quello che ho fatto) - Qualsiasi di questi comandi può essere eseguito su console e / o finestra terminale di qualsiasi display, l'unico requisito è che vengano eseguiti nell'ordine.

Questo comando crea il tuo nuovo display come un frame buffer per il tuo display VNC :2 (regola le dimensioni dello schermo come desiderato):

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

Questo avvia una nuova sessione X leggera sul display fisico come display :1 (ci sono diversi modi per farlo):

startx 'icewm' -- :1

Questo comando avvia il multi-display tra lo schermo fisico e lo schermo virtuale e avvia icewm per il window manager:

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

Ora apri una finestra di terminale e avvia il server di vnc (cambia password come desiderato):

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

L'unica cosa che resta da fare ora è attivare il tuo client VNC e collegarti al tuo VNC - potresti dover disabilitare o aggiungere un'eccezione al tuo firewall alla porta 5900 per poterti connettere ad esso. Un'altra cosa da tenere a mente è che alcuni client VNC non visualizzano la posizione del cursore remoto, certifico che "Mocha VNC" per iOS funziona alla grande se si disattiva l'opzione "mouse locale".

Divertiti a trascinare le finestre tra il monitor principale e il tuo nuovo secondo monitor virtuale (mentre puoi anche usare il tablet per fare clic / digitare su cose nel secondo monitor).

Per chiudere Xdmx premi Ctrl + Alt + Backspace due volte.

Automazione:

Uso questo script bash per avviare l'intero processo (uccide anche Xvfb all'uscita):

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

Allora ho un file ~/.xinitrc personalizzato con questo:

#!/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

Risoluzione dei problemi:

  • Quando esegui Xdmx se ricevi un errore che dice sh: /usr/local/bin/xkbcomp: No such file or directory potresti aver bisogno di eseguire exec: cd /usr/local/bin" and "ln -s /bin/xkbcomp , quindi prova di nuovo Xdmx.

  • Ctrl + Alt + F1 attraverso F7 dovrebbe funzionare in Xdmx per passare a altre console / xsessioni ma per qualche motivo non funziona, quello che faccio è semplicemente eseguire sudo chvt X (dove X è un numero console / xsession) per passare al mio display principale. Inoltre, quando torni a Xdmx potresti ottenere alcuni problemi di disegno su qualsiasi finestra aperta, faccio semplicemente clic sulla barra delle applicazioni per nascondere / mostrare nuovamente la finestra forzando un nuovo aggiornamento.

risposta data LinuxNewb 10.01.2014 - 02:01
0

Ho avuto un sacco di problemi con le altre tecniche elencate qui. Vorrei avere una soluzione migliore, ma la mia soluzione lenta e semplice è un buon punto di partenza.

Per il server VNC, ho provato il pacchetto vncserver ma lo schermo diventerebbe nero e dovrei riavviare gdm per far funzionare nuovamente tutto. Sono passato a tightvncserver e ha funzionato la prima volta senza configurazione.

Per condividere il mouse / tastiera tra le schermate ho usato x2vnc . Questo potrebbe anche essere usato con win2vnc per condividere il mouse / tastiera con un PC Windows vicino al tuo PC Linux.

Comandi finali:

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

A questo punto dovresti essere in grado di aprire la seconda schermata in un programma VNC collegandoti a YOUR_IP_ADDRESS:1 . Per avviare un programma sullo schermo VNC, aprire un terminale, impostare DISPLAY , quindi eseguire il comando. Ad esempio, per aprire xterm sullo "schermo" VNC, esegui:

export DISPLAY=:1
xterm

Utilizzando questo approccio il secondo schermo è piuttosto lento. Tuttavia, molte delle altre opzioni che ho provato sono finite nei vicoli ciechi, e questa ha funzionato senza alcuna configurazione.

    
risposta data thirdender 24.11.2016 - 21:30
0

Per chi ancora si interroga su questo argomento: la clip xrandr e x11vnc funziona; per consentire al mouse di andare oltre, è necessario utilizzare l'argomento panning per impostare l'area di tracciamento del mouse:

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

Quindi quando usi xvnc usa:

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

Questo impedisce a VNC di utilizzare il proprio cursore di tracciamento e dipinge il cursore come parte dell'immagine sullo schermo.

Ho preso nota qui link

    
risposta data 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 &

Ora fai clic sulla finestra che desideri condividere.

FULL :

Ho un iPad e un Chromebook e vorrei utilizzarli come miei monitor, solo per usare alcuni comandi del terminale htop , iptstate , nmon , ecc. Quindi sono un ragazzo pigro e l'ho usato usando:

  1. Instalazione pacchetto: sudo apt-get install x11vnc
  2. Apri un terminale e aggiungi xwininfo | awk '/Window.id/{print }' e fai clic nella finestra che desideri condividere. L'output sarà simile a:

    $ xwininfo | awk '/Window.id/{print }'
    0x4402f34
    
  3. Ora puoi iniziare la tua sessione x11vnc :

    $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
    
  4. Ridimensiona la finestra (0x4402f34) per avere l'immagine migliore possibile.

Attenti alla porta associata della tua sessione : 5900 -> :0 , 5901 -:1 , 5902 -> :2 ...

Inoltre, funziona perfettamente con le app X11: Firefox, OpenOffice, ecc.

    
risposta data Antonio Feitosa 28.02.2017 - 20:40
0

Utilizza vnc_virtual_display_linker

Lo strumento imposta un secondo monitor virtuale per il collegamento con VNC come descritto in molte delle risposte precedenti. Supporta anche le connessioni dai dispositivi Android tramite un cavo USB.

    
risposta data Falko Menge 04.07.2017 - 19:33
0

Grazie per il tutorial ragazzi, condividerò ciò che ha funzionato per me su Ubuntu 14.04

Ricevi AndroidVNC qui per il tuo tablet

Ottieni x11vnc per il tuo computer Ubuntu eseguendo

sudo apt-get install x11vnc

Ho dovuto usare il metodo del driver fittizio di Xorg. Ecco come appare il mio file /etc/X11/xorg.conf:

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**

Probabilmente non avrai bisogno di tutto lì, basta eseguire X-configure per ottenere il tuo sistema di autoconfig e aggiungere le sezioni fittizie (elementi tra gli asterischi) al tuo file. La risoluzione per lo schermo fittizio in xorg.conf dovrebbe essere la larghezza del monitor principale + la larghezza della risoluzione del tablet, nel mio caso 1680 + 1024 = 2704 mantenere l'altezza del monitor principale, 1050 nel mio caso. Riavviare X server / riavviare / tirare la spina di alimentazione, qualunque sia ti si addice di più:).

Esegui x11vnc facendo

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

Qui la risoluzione dovrebbe essere la larghezza della tavoletta x l'altezza della tavoletta + la larghezza dello schermo principale + 0

Collegati al tuo PC utilizzando il client androidVNC, assicurati di abilitare l'opzione localmouse. Dovrebbe essere così, ora senti la stranezza di avere Linux su Android:)

    
risposta data Mathieu Grenier 18.08.2015 - 23:58

Leggi altre domande sui tag