88 votes

Comment utiliser une tablette Android comme deuxième écran ?

J'ai remarqué que les gens utilisent 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 n'ai aucune idée de la façon de commencer.

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

39voto

Voici comment utiliser Android comme deuxième écran, partager la souris, faire glisser Windows entre les écrans de la tablette et de l'ordinateur .

La source originale du tutoriel se trouve à l'adresse suivante aquí .

A. Tutorat

Étape 1. Créez un nouveau moniteur virtuel

La résolution de ma tablette est de 1280x1024. (Vous pouvez modifier 1280 et 1024 partout dans les commandes si votre tablette a une résolution différente. Vous devrez peut-être aussi 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 se trouve après le mot Modeline (l'exclure) dans la commande suivante.

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

    (Note, dans l'étape suivante, vous devrez peut-être aussi changer VIRTUAL1 avec ce que vous trouvez dans la sortie xrandr comme sortie avec le nouveau mode)

  3. xrandr --addmode VIRTUAL1 1280x1024_60.00

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

Étape 2. Activez le bureau à distance pour le moniteur virtuel

Démarrez VNC :

  1. x11vnc -clip 1280x1024+0+0

Étape 3. Connectez-vous au bureau à distance

  1. Placez la tablette sur le même réseau local que l'ordinateur. Soit en vous connectant au même Wi-Fi, soit en créant un hotspot avec un appareil, puis en y connectant un autre appareil (USB Tethering).

  2. Trouvez l'IP de votre ordinateur en utilisant ifconfig (lors de la connexion depuis le réseau local).

  3. Téléchargez une application VNC sur la tablette, puis connectez-vous à l'ordinateur en utilisant l'IP de l'ordinateur (et en sélectionnant le port). 5900 ) dans l'application.

Avis

  • Crédits : kjans , contenu édité.
  • AVERTISSEMENT : Les données ne sont pas cryptées ! (Pertinent pour l'utilisation du Wi-Fi et du non-LAN)
  • AVERTISSEMENT : Les appareils de tous les réseaux auxquels vous êtes connecté pourraient atteindre le port 5900 et donc se connecter à votre moniteur ! Le fait d'être derrière un routeur le limite généralement à être accessible uniquement au sein de votre réseau local (si vous utilisez une connexion USB, vous pouvez bloquer complètement le réseau local avec la commande -listen <IP_ADDR> option pour x11vnc (où <IP_ADDR> est l'interface réseau USB)).
  • Le fait d'exécuter deux fois l'une des étapes 1 à 4 peut entraîner des erreurs.
  • Après une utilisation réussie, 5. l'étape doit être répétée pour une autre connexion.

B. script

Le tutoriel implémenté sous forme de script (Changez l'IP pour l'utiliser avec le câble USB OU supprimez-la et décommentez la ligne pour l'utiliser avec le Wi-Fi).

#!/bin/bash
W=1280
H=800
O=VIRTUAL1
if [ "$1" == "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 $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --addmode $O
  gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --output $O --left-of LVDS1 --mode
elif [ "$1" == "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

34voto

JoaoHornburg Points 2013

Obtenez un client VNC pour Android, démarrez 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 à ce serveur à partir du client VNC Android et (le plus astucieux) partagez le clavier et la souris du PC entre les deux sessions en utilisant synergy.

Tous les logiciels nécessaires pour ce faire sont disponibles dans les dépôts standards du côté d'Ubuntu, et il y a quelques clients VNC gratuits disponibles pour Android sur le marché.

Vous ne pourrez pas faire glisser Windows sur les écrans en utilisant cette méthode. Pour cela, je pense que vous devrez utiliser Xdmx pour lier les deux sessions. C'est beaucoup plus difficile et cela vous fera probablement perdre l'accélération 3D.

Sachez également que synergy et vnc n'utilisent pas le cryptage par défaut. Vous devez donc tunneliser les connexions si vous n'êtes pas sur un réseau de confiance.

19voto

chx Points 697

Tl ; dr : xrandr --fb et x11vnc --clip ensemble font une combinaison qui tue.
Plus d'options X11vnc : -find , -clip , -display ... -opts

Le fil de discussion lié par recognitium a une idée vraiment intéressante, je ne suis pas sûr qu'il parlait de celle-ci parce que je n'ai pas pu trouver l'auteur qu'il a indiqué et aussi parce que j'ai suivi le message du forum à cet endroit, je vais poster ceci séparément et non comme une modification :

  1. Tout d'abord, supposons que la machine principale a une résolution d'écran de 1280x800, que la machine secondaire sur laquelle vous voulez étendre votre bureau via VNC a une résolution d'écran de 1280x1024 et que vous voulez que l'écran étendu soit à droite de votre écran principal.
    L'écran virtuel doit être 1280x800 + 1280x1024 = 2560x1024 . (l'étendre horizontalement et faire en sorte que la résolution verticale soit la plus grande des deux). xrandr --fb 2560x1024 .

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

  3. x11vnc -clip 1280x1024+1281+0 plus toute autre option x11vnc à votre goût :)

Ça devrait être ça.

15voto

passick Points 151
  1. Installer vnc4server et x2x .

  2. Ensuite, mettez en place un .vnc/xstartup fichier de configuration. 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 faire pour que gnome 3 se lance dans vnc).

  3. Pour lancer le serveur vnc, utilisez vnc4server -geometry 800x480 commande. Bien sûr, au lieu de 800x480, vous devez définir la résolution de votre tablette.

  4. Lancement x2x -east -to :1 . Cette commande demande à votre ordinateur d'agir comme si l'affichage :1 avait été à la droite de l'écran (utilisez la commande -west si vous voulez qu'il soit à gauche). Vous ne pourrez pas déplacer les applications d'un écran à l'autre, mais vous pourrez utiliser une souris et un clavier pour les contrôler tous les deux.

  5. Connectez-vous à l'écran créé avec vnc4server à partir de votre tablette (le numéro de port est 5900 + le numéro de l'écran (par exemple, pour l'écran :1, le numéro de port sera 5901) (le numéro de l'écran est indiqué dans l'écran d'accueil). vnc4server )).

  6. Pour sortir de x2x , appuyez sur Ctrl-C . Vous pouvez également le lancer en arrière-plan ( x2x -east -to :1 & ). Ensuite, vous devrez d'abord le déplacer au premier plan ( fg ), ou le tuer avec kill $! (attention, cela tue 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 écran.

8voto

Felix Points 81

Cela est en principe possible en utilisant xdmx (distributed multihead X) qui vous permet de créer un seul bureau à l'aide de deux serveurs X fonctionnant sur des machines distinctes.

Trois scénarios sont en principe possibles, mais aucun n'est aussi transparent que l'iDisplay, car ils nécessitent tous de redémarrer votre session X au moins. Je n'ai pas réussi à faire fonctionner l'un ou l'autre parfaitement, mais j'utilise Ubuntu 10.10 et je ne peux pas faire de mise à jour pour diverses raisons.

Les trois sont :

  1. Exécutez un serveur X sur Android (il y en a deux disponibles maintenant dans la boutique d'applications) et utilisez xdmx à combiner avec l'écran de votre ordinateur de bureau ou portable. - n'a pas fonctionné pour moi car xdmx plantait lorsque le pointeur se déplaçait vers la partie tablette du bureau.

  2. Exécutez un deuxième serveur X avec un backend vnc sur votre ordinateur, utilisez xdmx pour combiner cela en un seul bureau avec l'écran de votre ordinateur, puis regarder la partie virtuelle avec une visionneuse vnc sur la tablette - cela n'a pas fonctionné pour moi parce que xdmx exige que tous les serveurs X aient les mêmes couleurs visuelles, ce qui n'est pas le cas pour le serveur VNC et l'écran réel, et je n'ai pas pu convaincre vncserver à changer.

  3. Exécuter deux serveurs VNC, un pour chaque écran, puis les connecter avec xdmx et regarder chaque partie avec un VNC Viewer sur la machine respective. - C'est ce qui a été le plus proche de fonctionner pour moi, malheureusement, l'entrée était désordonnée. C'était également assez lent en true-color sur le Wi-Fi. J'ai utilisé ce script pour démarrer xdmx et les deux instances de vncserver :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X