Artisan Numérique

/système/virtualisation/x11/ Coller deux machines ensemble avec synergy

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 libre et multi-plateforme qui permet de contrôler avec un même clavier et une même souris un ensemble de couples machines pouvant évoluer sous MacOS, Linux et même Windows, mais aussi iOS et Android. À ce titre cet excellent outil peut être vu comme un KVM sur IP. 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. Cerise sur le gâteau, le système permet aussi le partage du presse-papier mais aussi le déplacement de fichier entre MacOs et Windows.

L'architecture de synergie est de type client-serveur. Le serveur synergy sera lancé 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 machines seront alors des clients synergy.

Pour l'installation, il suffira d'un sudo aptitude install synergy sur chacune des machines (clientes et serveur). Ceci fait, nous passons au paramétrage du serveur via le fichier /etc/synergy.conf (ou ~/.synergy.conf selon vos besoins).

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

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.