Synergy

De ArchwikiFR

Synergy est un outil permettant de partager un clavier et une souris entre plusieurs machines, sans matériel particulier, et ce même si elles tournent sous des systèmes d'exploitation différents. L'objectif est de permettre de contrôler simplement plusieurs ordinateurs disposés les uns à côté des autres sur un bureau, chacun ayant son propre écran. L'un des ordinateurs joue le rôle de serveur, sur lequel sont branchés le clavier et la souris, tandis que les autres jouent le rôle de clients qui se connectent au serveur pour être asservis. Les éventuels clavier/souris des clients continuent à fonctionner normalement.

Synergy permet d'indiquer la position relative des machines et quand la souris sort d'un écran elle apparaît sur l'écran de l'ordinateur "voisin". Les presse-papiers sont aussi partagés, ce qui permet d'effectuer des copier/coller d'une machine à l'autre.

Sommaire

Installation

Sur les clients et le serveur :

 pacman -S synergy

Configuration

Créer un fichier /etc/synergy.conf sur le serveur (la machine possédant le clavier et la souris) à partir du /etc/synergy.conf.example fourni. Le fichier est assez simple à comprendre, organisé en plusieurs sections. Les machines peuvent être désignées par un nom de domaine plutôt que par une adresse IP, il suffit d'ajouter les correspondances adresse IP <-> nom de domaine dans /etc/hosts (du moins dans le cas où les machines ont toujours la même adresse IP).

La description complète (officielle) du fichier de configuration se trouve ici.

Note: Pour bénéficier de l'outil graphique fourni avec le paquet pour configurer synergy, synergy, installez la dépendance optionnelle qt4.

Exemple de fichier de configuration :

Fichier: /etc/synergy.conf
# Liste des machines
section: screens
    ordi-haut:
    ordi-droite:
    ordi-bas:
end

# Liens entre les machines
section: links
    ordi-haut:
        right      = ordi-droite(0,52)
        down       = ordi-bas(51,100)
    ordi-droite:
        left(0,52) = ordi-haut
    ordi-bas:
        up(51,100) = ordi-haut
end

Les valeurs entre parenthèses indiquent quelle partie d'une machine est concernée, en pourcentage ; si rien n'est indiqué, la valeur par défaut est (0,100). Ces indications servent à ajuster la correspondance entre les écrans, quand ils n'ont pas la même taille et/ou ne sont pas disposés en face l'un de l'autre. Par exemple ici à droite de l'écran de ordi-haut se trouve le haut de l'écran de ordi-droite (qu'on suppose plus grand). Tout ça fonctionne avec des machines multi-écrans, l'ensemble des écrans d'un ordinateur étant considéré comme un écran unique pour ce qui est des correspondances.

Des options peuvent être ajoutées dans une section supplémentaire, tout est détaillé dans la documentation.

Sécurité

Accepter la connexion entrante sur le pare-feu

Il faut ouvrir le port 24800 sur le serveur.

Ainsi, si vous utilisez iptables, la règle suivante devrait permettre d'ouvrir le port sur l'interface eth0 (enlever le "-s <adresse-ou-nom-client>" pour laisser tout le monde se connecter) :

 iptables -A INPUT -p tcp -i eth0 -s <adresse-ou-nom-client> --dport 24800 -j ACCEPT

Notes sur la sécurité

Synergy permet à un autre ordinateur de prendre le contrôle d'une machine cliente. Côté serveur c'est peut-être un peu moins grave mais si un client se connecte la souris peut alors sortir du serveur, ce qui est tout de même gênant. Attention donc si synergy est lancé hors d'un réseau local de confiance (et donc notamment en cas de lancement automatique).

ssh pourrait permettre de régler ce problème.

Utilisation

Lancement manuel

Pour lancer le serveur synergy :

 synergys

Pour lancer un client synergy :

 synergyc <nom-du-serveur>

Lancement automatique

Une possibilité est de placer les commandes dans .xinitrc.

Une autre est d'écrire un script permettant de lancer les commandes comme des services. Un service systemd est fourni avec le paquet pour le serveur synergy :

 systemctl enable synergys

Touches utiles

La touche "Arrêt défilement" (par défaut) permet de verrouiller la souris dans l'écran courant. Parfois utile en cas d'utilisation d'une application en plein écran, un jeu par exemple.

Problèmes

Disposition des touches du clavier

L'utilisation du clavier pour écrire quelque chose sur les machines asservies ne tient pas compte de la disposition indiquée pour le clavier (ou alors synergy ne regarde pas au bon endroit) : si les deux machines sont configurées avec un clavier français, les textes tapés sur le clavier commun et affichée sur la machine cliente seront considérés comme tapés sur un clavier américain. Une solution est d'inclure explicitement une commande fixant la disposition du clavier dans le fichier .xinitrc de la machine client par exemple (il se pourrait qu'il existe des solutions plus élégantes) :

 setxkbmap fr

Ou pour fixer automatiquement la disposition déjà configurée pour la machine :

 setxkbmap $(setxkbmap -query | grep "^layout:" | awk -F ": *" '{print $2}')
Outils personnels
Autres langues