Comment utilisez-vous une tablette Android comme deuxième affichage?

53

J'ai remarqué des personnes utilisant un produit pour Windows et Mac appelé iDisplay qui vous permet d’utiliser votre Android ou votre iPad comme écran secondaire. Cela semble être une excellente idée, et quelque chose qui pourrait être fait sur Ubuntu. Malheureusement, je ne sais pas comment commencer.

Comment pourriez-vous recréer cette configuration sur Ubuntu?

    
posée Mark B 01.03.2011 - 18:55
la source

13 réponses

28

Obtenez un client VNC pour Android, lancez une nouvelle session de serveur VNC sur votre ordinateur (ne vous contentez pas de partager l'affichage actuel - utilisez vnc4server et non x11vnc), connectez-vous à partir du client Android VNC, et ) partager le clavier et la souris entre les deux sessions en utilisant la synergie.

Tous les logiciels nécessaires à cette fin sont disponibles dans les systèmes de dépôt standard pour le côté Ubuntu, et il existe quelques clients VNC gratuits disponibles pour Android sur le marché.

Cette méthode ne vous permet pas de faire glisser des fenêtres sur les écrans. Pour cela, je pense que vous devriez utiliser Xdmx pour lier les deux sessions. C'est beaucoup plus difficile et cela vous ferait probablement perdre de l'accélération 3D.

Sachez également que synergy et vnc n'utilisent pas le chiffrement par défaut. Vous devez donc créer un tunnel pour les connexions si vous n'êtes pas sur un réseau approuvé.

    
réponse donnée Alistair Buxton 18.03.2011 - 05:11
la source
14

tl; dr: xrandr --fb et x11vnc --clip ensemble font un combo génial.

Le thread lié par reconnaissance a une idée vraiment intéressante, pas sûr de vouloir dire celui-ci parce que je n'ai pas trouvé l'auteur qu'il a indiqué et aussi parce que j'ai suivi le post sur le forum, je posterai ceci séparément et non comme édition:

  1. Tout d’abord, supposons que la machine principale a une résolution d’écran de 1280x800 et que l’ordinateur secondaire que vous souhaitez étendre à votre ordinateur via VNC ait une résolution d’écran de 1280x1024 et que l’écran étendu corresponde à votre écran primaire. L'écran virtuel doit être 1280x800 + 1280x1024 = 2560x1024 . (étendez-le horizontalement et faites en sorte que la résolution verticale soit la plus grande des deux) Donc, exécutez xrandr --fb 2560x1024 .

  2. Maintenant que l’écran est plus grand que votre moniteur principal, vous devez vous assurer qu’il n’a pas activé de "panoramique" ou autre "fonctionnalité" indésirable et que les coordonnées du coin supérieur gauche de votre moniteur principal sont 0x0.

  3. x11vnc -clip 1280x1024+1281+0 plus ajoutez toutes les options x11vnc à votre goût:)

Cela devrait être ça.

    
réponse donnée chx 13.01.2013 - 01:34
la source
12
  1. Installez vnc4server et x2x .
  2. Ensuite, configurez un fichier .vnc/xstartup config. Le mien ressemble à ceci

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

    Il lance le bureau gnome-fallback (je ne sais pas comment lancer gnome 3 dans vnc).

  3. Pour lancer le serveur vnc, utilisez la commande vnc4server -geometry 800x480 . Bien sûr, au lieu de 800x480, vous devez définir la résolution de votre tablette.
  4. Lancez x2x -east -to :1 . Cette commande dit à votre ordinateur d'agir comme s'il était affiché: 1 était à droite de l'écran (utilisez l'option -west si vous voulez qu'il soit à gauche). Vous ne pourrez pas déplacer les applications d'un écran à un autre, mais vous pouvez utiliser une souris et un clavier pour les contrôler tous les deux.
  5. Connectez-vous à l'écran créé avec vnc4server depuis votre tablette (le numéro de port est 5900 + numéro d'affichage (par exemple, pour l'affichage: 1 numéro de port sera 5901) (le numéro d'affichage est affiché dans la sortie de vnc4server ) ).
  6. Pour quitter x2x , appuyez sur Ctrl-C . Vous pouvez également le lancer en arrière-plan ( x2x -east -to :1 & ). Ensuite, vous devez d'abord le déplacer au premier plan ( fg ) ou le tuer avec kill $! (soyez prudent, cela détruit le dernier processus lancé en arrière-plan).
  7. Pour supprimer l'affichage créé, appelez vnc4server -kill :1 , où au lieu de :1 , vous pouvez définir le numéro de votre nouvel affichage.
réponse donnée passick 11.06.2013 - 09:19
la source
10

Impossible de faire fonctionner les autres réponses, excepté ceci , qui fonctionne parfaitement. Voici un tutoriel étape par étape, demandé par les commentaires.

A. Tutoriel

1. Créer un moniteur

(Remarque: modifiez 1280 et 1024 pour modifier la configuration de résolution 1280x1024 par défaut. Vous devrez peut-être également modifier LVDS1 si le nom du moniteur par défaut est différent).

Exécuter dans le terminal:

  1. $ gtf 1280 1024 60 .

Il y a une ligne dans la sortie similaire à Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync . Copiez tout ce qui suit le mot Modeline (excluez-le) dans la commande suivante.

  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. Démarrer VNC

  1. x11vnc -clip 1280x1024+0+0

3. Connectez-vous avec Android (LAN (Wi-Fi) ou USB (câble))

  1. Recherchez l'adresse IP de votre ordinateur à l'aide de ifconfig (lorsque vous vous connectez à partir d'un réseau local).

  2. Téléchargez une application VNC et connectez-vous à l'ordinateur à l'aide de son adresse IP (et sélectionnez le port 5900 ) dans l'application.

Avis

  • Crédits: kjans , contenus édités.
  • AVERTISSEMENT : les données ne sont pas cryptées! (Pertinent pour une utilisation Wi-Fi et non-LAN)
  • AVERTISSEMENT : tout réseau connecté au port 5900 peut se connecter à votre moniteur! (Ce n’est pas un problème si vous utilisez une interface USB AND limitant l’option -listen <IP_ADDR> à x11vnc (où <IP_ADDR> est l’adresse de l’ordinateur dans le réseau auquel vous voulez donner un accès exclusif))
  • L'exécution de l'une ou l'autre des étapes 1 à 4 peut générer des erreurs.
  • Après une utilisation réussie, le pas 5. doit être répété pour une autre connexion.

B. Script

Le didacticiel implémenté en tant que script (modifiez l'adresse IP pour l'utiliser avec le câble USB OU supprimez-la et décommentez la ligne à utiliser avec le 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
    
réponse donnée Prometheus 26.03.2016 - 19:53
la source
7

Ceci est en principe possible en utilisant xdmx (multi-tête distribuée X) qui vous permet de créer un bureau unique en utilisant deux serveurs X exécutés sur des machines séparées.

trois scénarios sont possibles en principe, mais aucun n’est aussi transparent que iDisplay, car ils nécessitent tous de redémarrer au moins votre session X. Je n'ai pas pu obtenir non plus de travailler parfaitement, mais je suis sous Ubuntu 10.10 et ne peut pas mettre à niveau pour diverses raisons. Les trois sont:

1: exécutez un serveur X sur Android (il y en a deux disponibles maintenant dans l'App Store) et utilisez xdmx pour combiner votre écran de bureau ou portable. - n'a pas fonctionné pour moi car xdmx est tombé en panne lorsque le pointeur a été déplacé vers la partie tablette du bureau.

2: lancez un second serveur X avec le backend vnc sur votre ordinateur, utilisez xdmx pour le combiner en un seul bureau avec l’écran de votre ordinateur, puis examinez la partie virtuelle avec un visualiseur vnc sur la tablette. moi parce que xdmx exige que tous les x-servers aient les mêmes couleurs, ce qui n’est pas le cas pour vncserver et l’affichage réel, et je n’ai pas réussi à convaincre vncserver de changer.

3: lancez deux vncservers, un pour chaque écran, puis connectez-les avec xdmx et examinez chaque composant avec un vncviewer sur la machine correspondante. - Ce qui a été le plus proche de travailler pour moi, malheureusement, les inpouts ont été perturbés. c'était aussi assez lent en couleurs vraies sur le wifi. J'ai utilisé ce script pour démarrer xdmx et les 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

    
réponse donnée Felix 16.09.2012 - 21:41
la source
2

J'utilise le pilote factice xorg et x11vnc -clip. Le point de la souris n'est pas coincé sur le bord.

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

Il y a le /etc/X11/xorg.conf pour le pilote factice sur le deuxième écran:

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

Connectez-vous ensuite à la session X et exécutez:

x11vnc -clip 1024x768+1280+0
    
réponse donnée mirage 08.02.2013 - 22:25
la source
2

J'ai fait un simple script bash pour faire une tablette un second affichage. Copier ipad_monitor.sh (ne vous inquiétez pas. Cela fonctionne aussi avec Android) dans mon billet de blog .

Ce qui diffère de l’autre post, c’est que vous pouvez très facilement définir la position du second écran avec des arguments supplémentaires.

Modifier: j'ai inclus l'original ipad_monitor.sh ici. exécuter cette commande comme:

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

L'idée de base de ce script est la même que celle des autres scripts, exécutant xrandr et x11vnc , mais j'ai inclus des options telles que le côté auquel vous souhaitez attacher l'écran.

#!/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
    
réponse donnée Bumsik Kim 17.04.2018 - 19:06
la source
1

Ces instructions permettent de créer un écran "supplémentaire" pour votre machine Linux en utilisant une tablette ou un ordinateur via un client VNC.

J'ai fait ces étapes dans Mageia3 32Bit (je n'ai pas essayé le 64bit) mais devrait être similaire pour les autres distributions (c'est-à-dire Ubuntu).

Assurez-vous d’avoir tous les packages requis avec la commande de terminal suivante:

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

Une fois que vous avez tous les paquets ci-dessus, lancez ces commandes:

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

Si vous n'obtenez aucune erreur, corrigez Xdmx (en termes simples, il a été "cassé" pendant un certain temps):

ouvrez /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c et changez de ligne 730:  changez ceci:

POINTER_ABSOLUTE | POINTER_SCREEN, &mask);

à ceci:

POINTER_RELATIVE | POINTER_DESKTOP, &mask);

SI la ligne 730 est différente, utilisez cette section pour trouver la ligne correcte: Section Orginal - ligne à modifier marquée avec *

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

Vérifiez votre version de Xdmx en exécutant ./configure --version in /usr/share/x11-server-source/ , pour Xdmx 1.13 , vous devez également apporter ces modifications (pour 1.14 et versions ultérieures, vous pouvez passer directement à "make"). étape ci-dessous):

ouvrir /usr/share/x11-server-sources/dix/getevents.c , ligne 1395:     changez ceci:

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

À ceci:

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

(section originale - ligne à modifier marquée avec *)

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

ouvrir /usr/share/x11-server-sources/Xext/xtest.c , ligne 311:     changez ceci:

flags = POINTER_ABSOLUTE | POINTER_SCREEN;

à ceci:

flags = POINTER_ABSOLUTE | POINTER_DESKTOP;

(section originale - ligne à modifier marquée avec *)

       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 , ligne 73: Ajoutez cette ligne après la ligne commençant par #define POINTER_EMULATED :

#define POINTER_DESKTOP         (1 << 7)

Après avoir apporté les modifications ci-dessus, ré-exécutez (dans /usr/share/x11-server-sources/ ):

make

Vous devriez avoir un nouveau fichier Xdmx dans /usr/share/x11-server-sources/hw/dmx/ . Nous devons l'installer globalement pour plus de facilité, alors je vous recommande de renommer votre existant:

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

et copiez le nouveau à la place:

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

Maintenant que vous êtes prêt à faire votre premier essai, les commandes suivantes vous permettent de conserver votre affichage principal / existant ( :0 ) en cours d'exécution et d'ouvrir un nouvel affichage avec le support multi-écrans. J'utilise icewm avec ces commandes pour le rendre un peu plus léger (j'utilise KDE sur mon affichage principal :0 et j'ouvre toute application multi-moniteurs dans le nouvel écran multi-têtes). Vous pouvez très certainement écrire ces commandes pour en faciliter l’utilisation (c’est ce que j’ai fait) - Chacune de ces commandes peut être exécutée sur la console et / ou la fenêtre de terminal de n’importe quel écran, la seule condition est qu’elles soient exécutées dans l’ordre. p>

Cette commande crée votre nouvel affichage en tant que tampon d'image pour votre affichage VNC :2 (ajustez la taille de l'écran comme vous le souhaitez):

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

Cela démarre une nouvelle session X légère sur votre affichage physique en affichant :1 (il existe différentes manières de le faire):

startx 'icewm' -- :1

Cette commande lance le multi-affichage entre votre écran physique et l'écran virtuel et lance icewm pour le gestionnaire de fenêtres:

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

Ouvrez maintenant une fenêtre de terminal et démarrez le serveur vnc (modifiez le mot de passe comme vous le souhaitez):

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

Il ne vous reste plus qu'à lancer votre client VNC et à vous connecter à votre VNC - vous devrez peut-être désactiver ou ajouter une exception à votre pare-feu au port 5900 pour pouvoir vous connecter à elle. Une autre chose à garder à l'esprit est que certains clients VNC n'affichent pas la position du curseur distant, je certifie que "Mocha VNC" pour iOS fonctionne très bien si vous désactivez l'option "souris locale".

Faites glisser les fenêtres entre votre moniteur principal et votre nouveau deuxième moniteur virtuel (tout en utilisant la tablette pour cliquer / taper sur le second moniteur).

Pour fermer Xdmx, appuyez sur Ctrl + Alt + Retour arrière deux fois.

Automation:

J'utilise ce script bash pour lancer tout le processus (tue également Xvfb à la sortie):

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

Ensuite, j'ai un fichier ~/.xinitrc personnalisé avec ceci:

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

Dépannage:

  • Lorsque vous exécutez Xdmx si vous obtenez une erreur indiquant sh: /usr/local/bin/xkbcomp: No such file or directory , vous devrez peut-être exécuter: cd /usr/local/bin" and "ln -s /bin/xkbcomp , puis essayez à nouveau Xdmx.

  • Ctrl + Alt + F1 à F7 est supposé fonctionner dans Xdmx pour passer à autres consoles / xsessions mais pour une raison quelconque, cela ne fonctionne pas, ce que je fais est simplement d'exécuter sudo chvt X (où X est un numéro de console / xsession) pour passer à mon écran principal. De plus, lorsque vous revenez à Xdmx, vous risquez de rencontrer des problèmes de dessin sur toutes les fenêtres ouvertes. Il suffit de cliquer sur la barre des tâches pour masquer / afficher la fenêtre, ce qui oblige à redessiner.

réponse donnée LinuxNewb 10.01.2014 - 02:01
la source
0

Merci pour les gars du tutoriel, je vais partager ce qui a fonctionné pour moi sur Ubuntu 14.04

Obtenez AndroidVNC ici pour votre tablette

Obtenez x11vnc pour votre PC Ubuntu en exécutant

sudo apt-get install x11vnc

J'ai dû utiliser la méthode du pilote factice Xorg. Voici à quoi ressemble mon fichier /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**

Vous n'aurez probablement pas besoin de tout, lancez simplement X -configure pour obtenir votre autoconfig du système et ajouter les sections factices (choses entre les astérisques) à votre fichier. Résolution pour écran factice dans xorg.conf devrait être la largeur de votre moniteur principal + largeur de résolution de votre tablette, dans mon cas 1680 + 1024 = 2704, gardez la hauteur de votre moniteur principal, 1050 dans mon cas. vous convient plus:).

Exécutez x11vnc en faisant

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

Ici, la résolution doit être la largeur de votre tablette x la hauteur de la tablette + la largeur de l'écran principal + 0

Connectez-vous à votre ordinateur en utilisant le client androidVNC, assurez-vous d’activer l’option localmouse. Cela devrait être le cas, maintenant ressentez l'étrangeté d'avoir Linux sur Android:)

    
réponse donnée Mathieu Grenier 18.08.2015 - 23:58
la source
0

J'ai eu beaucoup de problèmes avec les autres techniques listées ici. Je souhaite avoir une meilleure solution, mais ma solution lente et simple est un bon point de départ.

Pour le serveur VNC, j'ai essayé le package vncserver mais l'écran deviendrait noir et je devrais redémarrer gdm pour que quelque chose fonctionne à nouveau. Je suis passé à tightvncserver et cela a fonctionné la première fois sans configuration.

Pour partager la souris / le clavier entre les écrans, j'ai utilisé x2vnc . Cela pourrait également être utilisé avec win2vnc pour partager la souris / clavier avec un PC Windows à côté de votre PC Linux.

Commandes finales:

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

À ce stade, vous devriez pouvoir ouvrir le deuxième écran dans un programme VNC en vous connectant à YOUR_IP_ADDRESS:1 . Pour démarrer un programme sur l'écran VNC, ouvrez un terminal, définissez DISPLAY , puis exécutez la commande. Par exemple, pour ouvrir xterm sur l'écran "VNC", exécutez:

export DISPLAY=:1
xterm

En utilisant cette approche, le deuxième écran est assez lent. Pourtant, beaucoup d’autres options que j’ai essayées ont abouti à des impasses, et celle-ci fonctionnait sans aucune configuration.

    
réponse donnée thirdender 24.11.2016 - 21:30
la source
0

Pour ceux qui s’interrogent encore sur ce sujet: le clip xrandr et x11vnc fonctionne; Pour permettre à la souris de se déplacer là-bas, vous devez utiliser l'argument de panoramique pour définir la zone de suivi de la souris:

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

Ensuite, lorsque vous utilisez xvnc, utilisez:

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

Cela empêche VNC d’essayer d’utiliser son propre curseur de suivi et de peindre le curseur dans l’image de l’écran.

J'ai pris des notes ici lien

    
réponse donnée Mike Dawson 24.04.2015 - 14:56
la source
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 &

Cliquez maintenant sur la fenêtre que vous souhaitez partager.

FULL :

J'ai un iPad et un Chromebook et j'aimerais les utiliser comme moniteurs, juste pour utiliser certaines commandes du terminal htop , iptstate , nmon , etc. Donc, je suis paresseux et je l'ai fait en utilisant:

  1. Installation du package: sudo apt-get install x11vnc
  2. Ouvrez un terminal et mettez xwininfo | awk '/Window.id/{print }' et cliquez dans la fenêtre que vous souhaitez partager. Le résultat sera quelque chose comme:

    $ xwininfo | awk '/Window.id/{print }'
    0x4402f34
    
  3. Vous pouvez maintenant démarrer votre session x11vnc :

    $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
    
  4. Redimensionnez la fenêtre (0x4402f34) pour obtenir la meilleure image possible.

Respectez le port associé à votre session : 5900 -> :0 , 5901 -:1 , 5902 -> :2 ...

En outre, fonctionne très bien avec les applications X11: Firefox, OpenOffice, etc.

    
réponse donnée Antonio Feitosa 28.02.2017 - 20:40
la source
0

Utilisez vnc_virtual_display_linker

L'outil configure un second moniteur virtuel pour la connexion à VNC, comme décrit dans la plupart des réponses précédentes. Il prend même en charge les connexions à partir d'appareils Android à l'aide d'un câble USB.

    
réponse donnée Falko Menge 04.07.2017 - 19:33
la source

Lire d'autres questions sur les étiquettes