Synergy : contrôlez plusieurs PC avec une seule souris et un seul clavier
25 Nov 2008Synergy 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 $HOSTNAMELa section screen définit la liste des machines, et la section links définit
leur position relative.
Ensuite, côté serveur, on tape :
synergysEt sur chaque client :
synergyc ip_du_serveurLes 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 synergyset sur les clients :
killall synergycPour 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' >> ~/.gnomercPour le client :
echo 'synergyc ip_du_serveur' >> ~/.gnomercDé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 du système, on souhaiterait 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 chiffre 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 chiffrer, il suffit de ne faire écouter le serveur que
sur localhost et de faire passer la connexion dans un tunnel SSH.
Pour limiter à localhost :
synergys -f -a localhostPour cela, ouvrir un tunnel du serveur vers chacun des clients :
ssh client -CvR24800:localhost:24800 synergyc -f localhostOu, à l’inverse, ouvrir un tunnel de chacun des clients vers le serveur :
ssh server -CNvL24800:localhost:24800
synergyc -f localhostCe qui est embêtant, c’est qu’il faut déchiffrer la clé privée, ce qui 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.
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/