Synergy est un outil permettant de contrôler plusieurs ordinateurs avec un seul clavier et une seule souris. De plus, il permet de partager le presse-papier : pratique pour copier-coller d’un ordinateur à l’autre ! Mais en plus, c’est super simple !
Il y a un serveur et n clients. C’est le serveur qui possède le clavier et la souris.

Tout d’abord, sur chacun des postes, il faut installer le paquet synergy.
Ensuite, sur le serveur, il faut créer un fichier de configuration ~/.synergy.conf, extrêmement simple :
section: screens
rom-laptop:
rom-desktop:
end
section: links
rom-desktop:
left = rom-laptop
rom-laptop:
right = rom-desktop
end
Ici, rom-laptop est mon portable (le serveur) et rom-desktop est mon fixe (le client). C’est le nom de la machine, que l’on peut connaître avec :
echo $HOSTNAME
La section screen définit la liste des machines, et la section links définit leur position relative.
Ensuite, côté serveur, on tape :
synergys
Et sur chaque client :
synergyc ip_du_serveur
Les clients peuvent être lancés avant le serveur, ils vont tenter de se reconnecter 1 seconde après, puis 3 secondes après, puis 5, puis 15, puis 30 et enfin toutes les minutes. Ils survivent à la déconnexion du serveur, et tentent de se reconnecter en suivant la même règle.
Pour arrêter la connexion, sur le serveur :
killall synergys
et sur les clients :
killall synergyc
Pour aller plus loin :
Éviter le changement d’écran involontaire
Après quelques minutes d’utilisation, on se rend compte que lorsqu’on est sur le PC de gauche, et qu’on va à la droite de l’écran (pour déplacer la scrollbar de Firefox en plein écran par exemple), on se retrouve involontairement sur l’écran de droite, c’est très embêtant.
Mais c’est très facile d’y remédier, il suffit d’ajouter l’option :
section: options switchDoubleTap = 400 end
Cela permet de ne changer d’écran qu’en cas de double-contact en moins de 400ms avec le bord de l’écran.
Démarrer automatiquement
Sous GNOME (à adapter pour les autres environnements), il suffit de rajouter au fichier ~/.gnomerc la commande du serveur ou du client selon le cas.
Pour le serveur :
echo 'synergys' >> ~/.gnomerc
Pour le client :
echo 'synergyc ip_du_serveur' >> ~/.gnomerc
Décaler les écrans
Deux écrans côte à côte ne sont pas forcément alignés et ils n’ont pas forcément la même hauteur.
Par exemple l’écran de mon fixe est un 5:4 et il est un peu surélevé, celui de mon portable est un 16:10 et il est plus bas.
Pourtant, quand je déplace la souris d’un écran à l’autre, je voudrais que la souris reste à la même hauteur. Aucun problème, on peut passer des arguments (start,end), exprimés en pourcentage de l’écran, entre 0 et 100 inclus :
section: screens
rom-laptop:
rom-desktop:
end
section: links
rom-desktop:
left(35,100) = rom-laptop(0,85)
rom-laptop:
right(0,85) = rom-desktop(35,100)
end
section: options
switchDoubleTap = 400
end
Ici, la partie supérieure de mon portable ([0%;85%]) est en face de la partie basse de mon fixe ([35%;100%]).
Remarque : la relation n’a pas besoin d’être symétrique, mais c’est plus logique qu’elle le soit
Démarrer chacun des clients à distance
Si l’on ne veut pas démarrer synergy au démarrage, on souhaiterais pouvoir le faire rapidement sans passer sur chacun des PC pour exécuter une commande. Avec une connexion SSH correctement configurée (par clés de préférence), on peut automatiser le lancement de tous les clients :
synergys ssh rom-desktop synergyc rom-laptop ssh un-autre-pc synergyc rom-laptop
(rom-laptop est défini dans /etc/hosts)
Sécuriser la connexion
Synergy ne crypte pas les communications, donc tout passe en clair sur le réseau (enfin, du moins pour ceux qui connaissent la clé WPA de votre réseau, si vous êtes en wifi).
Pour crypter, il suffit de faire passer la connexion dans un tunnel SSH. Pour cela, sur chacun des clients :
ssh rom-laptop -fCNL24800:localhost:24800 synergyc localhost
Ce qui est embêtant, c’est qu’il faut décrypter sur chacun des postes la clé privée, et donc c’est problématique pour démarrer synergy au démarrage du système.
Un grand merci à Génération Linux qui m’a fait découvrir cet outil maintenant indispensable.

#1 par Jopa à 25 novembre 2008 - 22 h 48 min
Citation
C’est vrai que Synergy est vraiment un bon petit outil !!!
Il existe un petit utilitaire graphique qui simplifie encore plus la configuration : Quicksynergy
http://www.jopa.fr/index.php/2008/11/24/partage_clavier_souris_synergy/
#2 par compte0 à 26 novembre 2008 - 9 h 57 min
Citation
je connaissais synergy mais merci pour tout les options. Une petite remarque, sur ton réseau local tu peux utiliser des noms de domaines en .local, genre rom-desktop.local (avahi doit être activé et c’est moins propore aue de modifier le hosts, mais plus simple).
Par contre chiffré le flux synergy par ssh , c’est cool quand tes postes sont sur un unix-like, mais sur windows, comment on fait???
#3 par Guizmo.7 à 26 novembre 2008 - 17 h 21 min
Citation
Merci pour cet outil, il a l’air très pratique !
(Juste une petite erreur : dans la partie démarrer automatiquement, il manque un s à « echo ‘synergys' >> .gnomerc". Ce n'est pas grave du tout mais ça empêche le copié-collé pour les feignants …)
#4 par ®om à 26 novembre 2008 - 18 h 51 min
Citation
Pour chiffrer le flux par ssh, sous Windows tu as putty (mais je connais peu, je sais que ça marche).
Merci Guizmo.7, j’ai rectifié (et j’ai rajouté ~/ devant .gnomerc aussi).
#5 par ResuX à 2 février 2009 - 11 h 53 min
Citation
Merci pour les explications, c’est terrible de passer d’un écran à un autre comme ça. J’adore
#6 par Stephb à 14 janvier 2010 - 13 h 24 min
Citation
Sympa l’article sur un logiciel qui m’est indispensable tous les jours au bureau. Je l’utilise sur 3 ordi en simultané
#7 par jean-luc à 29 avril 2010 - 17 h 20 min
Citation
Bonjour,
D’abord félicitation pour l’article. Je suis utilisateur de ce produit vraiment formidable. Mon problème est le suivant :
j’ai 3 pc. Ils sont disposés comme suit :
Client2—-Client1—–Serveur
Je me retrouve donc avec deux pc a gauche
le passage entre le serveur et le client 1 et vice et versa se fait sans problème. Par contre, dès que je vais sur le client 2 je suis bloqué. Ma souris et mon clavier reste obstinément attachés à ce client. Seule solution : arrêter synergy sur ce client pour pouvoir retrouver la main
Quelqu’un a -t-il une idée ?
Merci d’avance
#8 par jean-luc à 3 mai 2010 - 12 h 41 min
Citation
Je me réponds à moi même. Cela peux toujours servir. en fait, dans le paramétrage serveur, il faut deux lignes par machine, une pour définir la machine qui est à droite, une autre pour la machine qui est à gauche et ceci même si ces deux machines sont de chaque coté d’un client. (Ce qui était mon cas).