Coller deux machines ensemble avec synergy
Le 18 février, 2009 - 12:53 | Ulhume

La problématique est simple, comment faire pour n'utiliser qu'un seul ensemble clavier-souris pour contrôler plusieurs écrans connectés à autant de machines. Plus précisément, comment coller tout cela sur un grand bureau en laissant le pointeur de souris se déplacer librement d'un écran à l'autre et comment permettre de copier un texte dans le presse-papier d'une machine pour de le coller sur une autre. Et tout cela quel que soit les OS utilisés dans l'assemblage. La réponse est s'appelle synergy.

Paramétrage de Synergy

Synergy est un outil multi-plateforme qui permet de contrôler avec un même clavier et une même souris un ensemble de couples machine-écran(s) pouvant évoluer sous MacOS, Linux et même Windows. En paramétrant simplement la disposition physique des écrans les uns par rapport aux autres, il est ainsi possible de glisser la souris d'une machine à l'autre sans même s'en rendre compte et permettre les entrées clavier là où le pointeur se trouve.

L'architecture de synergie est de type client-serveur. Le serveur synergy sera hébergé sur la machine à laquelle sont connectés le clavier et la souris. C'est aussi sur cette machine que sera stockée la seule et unique configuration de l'ensemble. Les autres, les clientes, n'auront qu'un démon à lancer avec comme seul paramètre le nom du serveur.

Sous Mandriva, l'installation passe par un urpmi synergy sur chacune des machines (clientes et serveur). Ceci fait, passons au paramétrage du serveur via le fichier /etc/synergy.conf

Dans la section screens nous allons configurer deux machines, netbook et desktop. Attention, il s'agit là du nom réseau de ces machines. En d'autre termes, si vous fait à partir de netbook un ping desktop, cela doit répondre, et vice-versa.

section: screens
   netbook:
   desktop:
end
/etc/synergy.conf

La deuxième section, s'appelle links et va nous permettre de décrire la position des écrans les uns par rapport aux autres. Plus exactement, nous allons définir pour chaque machine déclarées dans la section screens, où doit aller le curseur de souris lorsqu'il bute sur un bord de l'écran.

section: links
   desktop:
     left = netbook
   netbook:
     right = desktop
end

Ici nous indiquons que la machine netbook est placée à gauche (left) de la machine desktop et la machine desktop à droite de la machine netbook. Ainsi lorsque le curseur tape sur le bord droit de la machine netbook, il passe automatiquement sur la machine desktop. Et de même pour le bord gauche de desktop. Si vos écrans sont disposés de manière verticale, il est aussi possible d'utiliser les positions up et down.

Lancement

Il suffit maintenant de lancer le serveur Synergy (synergys) sur la machine desktop par la commande synergys (notez le S final). Le processus se met automatiquement en mode démon. Si vous avez besoin de tester votre configuration, vous pouvez utilisez le mode debug en lançant plutôt synergys -f -d.

De la même manière, sur la machine netbook, nous allons lancer le client par la commande synergyc desktop (notez le C final). De même que pour le serveur, si vous voulez debugger, vous pouvez lancer synergy -f -d desktop.

Ceci fait, le client se connecte au serveur et la magie commence. Vous devriez pouvoir passer avec votre souris d'une machine à l'autre en la faisant "taper" sur le bord gauche de l'écran du PC pour qu'elle passe sur l'écran du netbook. Le clavier est alors utilisable à cet endroit. Et comble du fin, le presse-papier est aussi exporté !! Si vous copiez du texte d'un côté, vous pouvez le coller de l'autre.

Automatisation

Pour automatiser tout cela, il faut que les deux commandes soient lancées sur chaque machine à l'ouverture de votre session. Cela se fait très simplement en utilisant sous Gnome Système/Préférences/Sessions/Programmes au démarrage et en ajoutant les bonnes commandes (synergys ou synergyc desktop) sur chacune des deux machines.

Pour aller encore un peu plus loin, il peut être utile que le netbook soit connecté au serveur synergy avant l'ouverture de la session sur le client, de sorte à pouvoir permette de rentrer identifiant et mot de passe avec le clavier et la souris du serveur.

Pour ce faire, il suffit sur le netbook d'ajouter un fichier /etc/X11/synergy.xsetup :

# to be sourced
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc desktop
/etc/X11/synergy.xsetup

Un petit coup de chmod +x /etc/X11/synergy.xsetup sur le museau et au prochain redémarrage de X11, le client devrait se connecter au serveur dés l'apparition de l'invite de connexion.

Conclusion

Synergy est un outil fabuleux que j'utilise non-stop depuis des années. Cependant, il n'est pas d'une stabilité à tout épreuve. Il arrive en effet que le presse papier déconne ou, beaucoup moins souvent, que le client plante sans raison. Mais dans l'ensemble, utilisé à haute dose, rempli parfaitement son office.

Commentaires

malic, le 31 janvier, 2008 - 10:18

C'est une excellente idée mais j'imagine qu'il est impossible de glisser une fenetre des 2 premiers écrans vers le 3ème et inversement?

Dab, le 24 janvier, 2008 - 23:37

Héhé en effet je suis l'un des intéressés ;)
Marrant ce truc, et qui de plus couplé avec un vnc complète bien la panoplie.
hmmmm ... ça va finir dans Zaurusfr, qu'en pense tu ?

Ulhume, le 31 janvier, 2008 - 12:14

Non effectivement ce n'est pas possible.. pour l'instant :-)

En fait dans le projet GPE il y a un outil qui s'appelle Teleport qui fait exactement ce travail, à savoir re-rooter une fenêtre d'un serveur sur un autre. Je n'ai pas trouvé de paquet pour la driva mais il semble qu'il y en ait sous debian/ubuntu.

Sinon il est possible d'utiliser le proxy de serveur XMove qui fait aussi ce travail là, je n'ai pas encore testé.

Maintenant, c'est pour cela que je ne colle que kmail, akregator et kopete sur cet écran, à savoir des choses que je ne suis jamais amené à bouger. Le seul problème était donc l'ouverture des URL.

Ulhume, le 25 janvier, 2008 - 00:13

Je pense que ça le ferait bien :) En plus c'est ultra-fluide et permet de modifier la distrib bcp plus rapidement qu'avec vnc ou le sytus. En plus le copier/coller du PC vers le zaurus et vice-versa, un bonheur :)

Ulhume, le 25 janvier, 2008 - 10:12

Un peu oui :) J'avoue que ma méthode (suppression du module) est quelque peu.. sauvage :)

Janusz, le 25 janvier, 2008 - 10:53

Très bon outils en effet. Même le presse papier (copier/coller) entre machines de système différents fonctionne.

Attention tout de même à ne pas prendre l'habitude de taper ses mots de passe par Synergy ; les informations circulent en claire sur le réseau. Un tunnel ssh peut corriger ce problème (voir dans la doc du site de Synergy).

Ulhume, le 25 janvier, 2008 - 11:36

@janusz bonne remarque pour la sécurité mais c'est tout de même limité en terme de risque par le besoin d'avoir un écran physique, la machine est donc généralement dans nos pieds ;-)

Pour le copier coller je l'avais marqué il me semble, je vais mettre cela plus en relief car c'est vraiment un des éléments qui rend la solution ultra-naturelle. Manquerait plus que le drag-n-drop :)

Dab, le 26 juin, 2008 - 11:27

Et hop un p'tit lien intéressant que je viens de voir passer sur Planete Libre : http://0pointer.de/blog/projects/mango-lassi.html ( http://www.atlas95.com/blog/2008/06/25/en-vrac-pulseaudio-51-pulseaudio-... )

Armetiz, le 18 novembre, 2008 - 22:18

Coucou,
J'utilise synergy depuis une bonne année maintenant, et c'est du pure bonheur ! Surtout avec un pc portable, quand on arrive à la maison, meme pas besoin de station d'accueil à je ne sais pas combien d'euros pour avoir une souris supplémentaire, il suffit de brancher la prise réseau pour partager clavier/souris avec le fixe.

Par contre, je ne suis pas sur de comprendre l'intérêt de la déportation du X via SSH.
Tu dispose d'un serveur suffisamment puissant pour héberger plusieurs sessions graphiques, mais après ? Je n'arrive pas à saisir le croisement que tu fais.
Je me suis arrêté à synergy : partage de clavier/souris entre Mac OS/X - Linux - Windows... Et au fait que l'on pouvait démarrer une session graphique via le réseau. Mais le mix que tu fais avec les deux ?

Voilà, j'espère que c'est un peu moins obscure maintenant. Et la raison qui m'a fait mettre tout cela en tuto c'est que je commence à avoir des gens qui passe chez moi en me disant "euh, comment je fais la même chose" (coucou Ludo ;-). Donc ce "besoin" ne doit pas être si unique :)

Ulhume, le 26 juin, 2008 - 13:17

Ca avait l’air sympa ce Mango-Lassi, mais… marche pas bien chez moi… Peut-être la faute au double twinview (ma machine A et ma machine B ont chacune 2 écrans en nvidia/twin) ?

- Sur la machine A (celle qui a clavier-souris), j’ai les préférences et je peux connecter la machine B mais la souris ne sort pas de l’écran de A pour aller sur B.

- Et sur la machine B, qui n’a ni clavier ni souris, il me claque une erreur lorsque je cherche à afficher les préférences :
(mango-lassi:6699): Gtk-CRITICAL **: gtk_window_present_with_time: assertion `GTK_IS_WINDOW (window)’ failed

Donc pas grand succès… Pourtant tout le monde se voit, les messages de connection s’affichent des deux côtés, c’est juste la souris qui ne semble pas désirer se balader…

Et pourtant, le plus étrange est que si je débranche la souris de A pour la brancher sur B, j’ai une souris qui apparaît sur A… Et qui ne va jamais sur B :-)))) Là, là… ça devient assez surréaliste :-)

Alors soit j’ai loupé une énorme marche, soit il va falloir laisser le produit un peu maturer :-)

Synergy, lui, je l’utilise depuis des mois (depuis cet article en fait) et il marche très bien. La seule différence est qu’il n’utilise pas Avahi ce qui n’est pas d’un grand intérêt à mon sens pour des machines qui sont côte à côte par la force des choses. L’autre petite différence sont les messages à l’écran pour dire qui est connecté sur quoi, mais là aussi, le but est que ce soit connecté tout court, a la limite les messages me font prendre conscience que ce sont deux bécanes différentes alors qu’avec synergy je finis même par oublier ce “détail” tant je passe naturellement de l’une aux autres.

Enfin bon, on va voir comment ça va évoluer mais à première vue, synergy a encore une bonne longueur d’avance et je ne suis pas bien sur de comprendre l’intérêt d’un 3ième produit qui fait la même chose.

Ulhume, le 18 novembre, 2008 - 23:20

@Armetiz

L'intérêt de lancer les applications via SSH est que
1/ La machine n'a pas besoin d'être puissante.
2/ Je n'ai pas besoin d'y installer les applications que je veux utiliser sur "son" écran.
3/ Je n'ai pas besoin de paramétrer une application sur le netbook pour l'utiliser alors qu'elle l'est déjà sur mon PC principale.

Je peux par exemple ouvrir eclipse sur l'écran central, travailler, le fermer et le réouvrir sur l'écran de gauche pour avoir le code sous les yeux en écran histoire d'écrir un mail compliqué, en ayant fait la même chose dans l'autre sens avec evolution.

En fait pour mieux comprendre le concept, il faudrait imaginer un synergy qui me permette de transférer une fenêtre d'un écran à l'autre. Pour l'instant je ne peux pas, donc j'utilise la ligne de commande et SSH. J'ai dans l'idée un petit soft qui me permettrait de faire cela en re-rootant une fenêtre de manière plus ergonomique sur un autre serveur X. Cette application existe sous GPE (Gnome pour les PDA) mais demande à être portée sur Gnome tout court.

Tout cela tient donc au fait que j'ai pris l'habitude de travailler intensivement avec trois écrans. Synergy n'est donc pas là pour commander mon netbook, je n'utilise en réalité les applications du netbook que lorsque je suis en déplacement, mais pour étendre mon bureau principal et SSH me permet juste d'y relocaliser des applications.

Dab, le 26 juin, 2008 - 17:50

Je dois te dire que je n'ai même pas testé (zaurus au repos en ce moment), mais j'aimais bien l'idée d'un transfert de la souris ET du son avec pulseaudio.
Sinon c'est vrai que si son seul apport est l'affichage de popup je vais freiner des 4 fers.
Un surcouche à synergy le fait aussi semble-t-il : http://code.google.com/p/gnome-synergy/source/checkout

SckyzO, le 18 février, 2009 - 15:40

Salut Artisan Numérique, juste pour te demande de changer un truc sur ton article, tu as une balise italique mal fermée, et elle modifie totalement le planet libre en mettant tous les articles qui suivent en italique.
(dans le chapitre AUTOMATISATION)

Merci,

SckyzO

Ulhume, le 18 février, 2009 - 16:34

Désolé, c'est réglé :)

SckyzO, le 18 février, 2009 - 16:40

Merci beaucoup :)

Raf, le 2 mai, 2010 - 20:34

Super tuto !

Petite question à tout hasard, c'est normal qu'après avoir crypté la connexion sur le port 24800 j'arrive à utiliser avec "synergyc localhost" sur le port crypté , ok, mais étrangement j'arrive également encore à me connecter comme ceci : "synergyc 192.168.1.xxx"...

Je m'attendais après être passé en ssh à ce que l'ancienne accès en clair ne soit plus valable... peut être me trompe-je ??

Publier un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <div> <p> <br>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.

Plus d'informations sur les options de formatage

CAPTCHA
Cette question est là pour déterminer si vous êtes humain ou pas...