Synergy
Synergy permet d'utiliser un seul clavier et souris pour piloter plusieurs ordinateurs du même réseau. Les ordinateurs peuvent être sous Linux, Windows ou MacOS. Ce tutoriel montre comment paramétrer et utiliser Synergy sur Ubuntu.
On peut éventuellement ajouter les infos avec OpenSSH.
Installation
La manière la plus simple est d'installer le paquet synergy.
Installer en 1 clic1) |
---|
Voilà pour l'installation de Synergy sur une Ubuntu. Si vous souhaitez l'installer sur un autre système, comme Windows, vous trouverez toutes les informations nécessaire sur le site de Synergy.
Installation d'une version récente
L'installation proposée dans la section précédente permet d'installer synergy2, dont la dernière version remonte à 2006. Il existe une autre version mise à jour régulièrement: synergy-plus. Les deux versions utilisent un fichier de configuration identique et des options similaires, et les exécutables ont le même nom (n'essayez pas d'installer les deux en même temps). Synergy-plus corrige de nombreux bugs et des paquets .deb pour Ubuntu (ou Debian) 32 et 64 bits sont disponibles ici.
Configuration
Maintenant que Synergy est installé, il va falloir le configurer. Cependant, vous devez le configurer sur au moins deux machines différentes puisque configurer Synergy sur une seule machine n'a pas vraiment d'intérêt. Je vais vous expliquer comment le configurer aussi bien en tant que serveur qu'en tant que client, mais seulement sur Ubuntu. Encore une fois si vous souhaitez le configurer pour un autre système référez-vous aux instructions sur le site de Synergy.
Configuration du serveur
Pour configurer le serveur Synergy, créez le fichier /etc/synergy.conf (ou un fichier ~/.synergy.conf si vous préférez une configuration pour un seul utilisateur seulement, mais dans ce cas vous ne pourrez pas démarrer automatiquement synergy avant de vous être connecté), puis remplissez ce fichier de cette manière :
section: screens hoary: arthur: end section: links hoary: right = arthur arthur: left = hoary end
C'est un exemple de configuration tiré de mon synergy.conf. La signification des paramètres de configuration est la suivante :
- hoary est le nom de ma machine principale, c'est elle qui exécutera le serveur Synergy. La machine qui a le serveur est celle qui possède le clavier et la souris utilisé, les autres machines ne sont que des "écrans" supplémentaires en quelque sorte.
- arthur est le nom de la machine client (c'est une autre Ubuntu).
- section: screens est la partie qui liste les machines qui seront utilisées en fonction de leur hostname.
- section: links définit de quelle façon la souris quittera l'écran d'une des machines pour passer sur une autre. Ici on a placé l'écran de hoary à gauche de celui d'arthur, donc si la souris va tout à droite de l'écran de hoary elle arrivera sur la gauche de celui de arthur, et inversement. On aurait aussi pu placer ubuntu42 au-dessus de arthur en spécifiant up au lieu de left, down au lieu de right, etc…
Configuration du client
Il n'y en a pas, il suffit d'installer Synergy.
Utilisation
Serveur
Pour lancer le serveur exécuter la commande :
synergys -f
Si votre fichier « synergy.conf » est dans un endroit différent, vous pouvez le spécifier en utilisant :
synergys -f -c /endroit/de/votre/synergy.conf
Il est possible de chiffrer les communications, il faut alors calculer le hash de son mot de passe :
echo -n MonMotDePasse > tmp.log md5sum tmp.log
Le résultat md5 est utilisé pour lancer le serveur :
synergys -f --crypto-mode cfb --crypto-pass 1c934b25d3a85c8bbb28a00a4f5e1457 # ofb, cfb, ctr et gcm possibles en tant que cryptage
Client
Pour un client (dans ce tutoriel le client est aussi exécuté sous Ubuntu) :
synergyc -f <ip address of server>
Si le serveur a l'adresse IP 192.168.0.1, on a donc :
synergyc -f 192.168.0.1
De même que pour le serveur, il est possible de chiffrer la communication :
synergyc -f --crypto-mode cfb --crypto-pass 1c934b25d3a85c8bbb28a00a4f5e1457 192.168.0.1
- L'option «
-f
» dit à Synergy de ne pas s'exécuter en tâche de fond, mais dans le terminal, ce qui est utile lorsque l'on fait des tests. Pour interrompre Synergy, il suffit de taper Ctrl+c dans ce terminal. - Si la commande est exécutée sans l'option «
-f
», Synergy se lance alors indépendamment du terminal, vous pouvez alors fermer le terminal sans craindre de tuer Synergy. - Lorsque vous mettrez Synergy en service définitivement, pensez à ôter l'option «
-f
» !
Cette méthode fonctionne aussi avec un autre poste sous Mac OS X.
Configurer pour un démarrage automatique
Vous ne voudrez probablement pas le lancer manuellement à chaque démarrage de votre machine, voici comment le paramétrer pour un démarrage automatique.
Dans les méthodes ci-dessous, les commandes sont décrites pour le client synergy (/usr/bin/synergyc). Mais pour le serveur, il suffit de remplacer la commande synergyc par la commande synergys (et d'adapter les options en conséquence, puisque contrairement au client, la commande synergys ne nécessite pas de HOSTNAME).
Il faut tout d'abord savoir quel est votre gestionnaire de session. Depuis la version 11.10, LightDM est le gestionnaire de session par défaut pour Ubuntu et ses variantes Xubuntu et Lubuntu (depuis 12.04 seulement pour ce dernier). Si vous utilisez une version antérieure d'Ubuntu (10.04 LTS ou 11.04), votre gestionnaire de session graphique est GDM2. Si vous utilisez une variante d'Ubuntu, votre gestionnaire de session est peut-être différent. Consultez le portail des gestionnaires de sessions pour repérer votre gestionnaire de session graphique.
Methode 1 : avec LightDM, dès l'écran de connexion
Si votre gestionnaire de session est lightDM, ce qui est certainement le cas si vous disposez d'une version d'Ubuntu relativement récente, cette méthode est de loin la plus simple.
Editer le fichier /etc/lightdm/lightdm.conf pour y ajouter la ligne
greeter-setup-script=/usr/bin/synergyc HOSTNAME
si vous configurez une machine client, ou la ligne
greeter-setup-script=/usr/bin/synergys
pour démarrer le serveur. Vous pouvez ajouter les mêmes options que précédemment, comme –crypto-pass <PASSWORD HASH> (côté serveur et client) ou encore -c /endroit/de/votre/synergy.conf (uniquement côté serveur).
Sous Ubuntu 14.04 64bit, le fichier de configuration a changé d'emplacement. C'est ce fichier que vous devez modifier : /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
Cette simple ligne devrait permettre à Synergy de démarrer dès l'écran de connexion, puis de continuer à fonctionner une fois l'utilisateur logué.
Methode 2
Avec GNOME
Pour ajouter Synergy au démarrage automatique de votre session, allez dans Système → Préférences → Application au démarage, puis cliquez sur ajouter. La commande est celle que vous utilisiez au chapitre précédent sans l'option « -f
» (cela empêcherait le chargement de Gnome en attendant indéfiniment la fin de Synergy).
Avec KDE 3 (et supérieurs ?)
Dans le fichier /etc/kde3/kdm/Xsetup, ajouter une seule fois l'appel à Synergy
# Appel à Synergy /usr/bin/synergyc <nom du serveur Synergy ou son IP>
Cet appel sera opérationnel pour KDM comme pour la session ouverte.
Avec un autre environnement
Si vous utilisez un service graphique pour vous identifier, il est assez simple de lancer automatiquement Synergy. Il suffit d'ajouter un petit script exécutable dans le répertoire « /etc/X11/Xsession.d/ » avec une première ligne spécifiant d'exécuter le script avec bash et une seconde avec la commande que vous voulez exécuter, par exemple pour un client Synergy qui doit se connecter a un serveur a l'adresse 192.168.0.1 le script serait composé de:(n'oubliez pas d'utiliser sudo pour pouvoir écrire dans le dossier /etc ou n'importe quel de ses sous-répertoires)
#!/bin/sh /usr/bin/killall synergyc sleep 1 /usr/bin/synergyc 192.168.0.1
Attention si vous ajoutez le « -f
» vous aurez un script qui ne se terminera pas et donc GNOME ne se chargera pas.
Le nom de ce fichier est crucial ! Le nom doit commencer par deux chiffres, pour spécifier son ordre de lancement. Le reste du nom n'est vraiment pas important. J'ai essayé avec 12synergy, 22Synergy, 32synergy et 54synergyc. Toutefois cela ne permet pas d'utiliser Synergy à l'écran d'identification. Heureusement, il existe un moyen de l'utiliser même là pour ceux qui souhaitent se connecter avec un autre clavier. Vous allez devoir éditer encore deux autres fichiers dans le dossier « /etc/X11/ » en lien avec GDM.
Nous voulons que le client soit lancé quand gdm est aussi lancé, avant l'identification d'un utilisateur. Ajoutez les lignes suivantes à votre /etc/gdm/Init/Default (ajoutez-les au sommet du fichier juste après les lignes commentées avec des « # ») :
/usr/bin/killall synergyc sleep 1 /usr/bin/synergyc xxx.xxx.xxx.xxx
où xxx.xxx.xxx.xxx est l'adresse IP du serveur.
Pour que le client Synergy puisse être exécuté par l'utilisateur plutôt que par le root juste après que l'identification est faite, nous devons tuer le processus synergyc lancé par le root au même moment que GDM (ou KDM), un processus lancé par le root ne peut être tué que par lui, nous allons donc éditer le fichier /etc/gdm/PreSession/Default qui est le dernier script bash exécuté en root avant que l'utilisateur ne prenne la main. Modifier votre /etc/gdm/PreSession/Default pour qu'il soit comme ceci :
#!/bin/sh # # Note that any setup should come before the sessreg command as # that must be 'exec'ed for the pid to be correct (sessreg uses the parent # pid) # # Note that output goes into the .xsession-errors file for easy debugging # PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH:/bin:/usr/bin" gdmwhich () { COMMAND="$1" OUTPUT= IFS=: for dir in $PATH do if test -x "$dir/$COMMAND" ; then if test "x$OUTPUT" = "x" ; then OUTPUT="$dir/$COMMAND" fi fi done unset IFS echo "$OUTPUT" } # Le processus synergyc, lancé en root, se finit ici. /usr/bin/killall synergyc sleep 1 XSETROOT=`gdmwhich xsetroot` if [ "x$XSETROOT" != "x" ] ; then # Try to snarf the BackgroundColor from the config file BACKCOLOR=`grep '^BackgroundColor' /etc/gdm/gdm.conf | sed 's/^.*=\(.*\)$/\1/'` if [ "x$BACKCOLOR" = "x" ]; then BACKCOLOR="#76848F" fi "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR" fi SESSREG=`gdmwhich sessreg` if [ "x$SESSREG" != "x" ] ; then # some output for easy debugging echo "$0: Registering your session with wtmp and utmp" echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY$ exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER" # this is not reached fi # some output for easy debugging echo "$0: could not find the sessreg utility, cannot update wtmp and utmp" exit 0
Pour un serveur, la méthode reste à peu près la même : il suffit de créer simplement un fichier « 12synergy » dans le répertoire « /etc/X11/Xsession.d/ » contenant :
#/bin/bash /usr/bin/killall synergys sleep 1 synergys --config /etc/synergy.conf
Methode 3
Il y a en tout 3 scripts à ajouter :
- le premier sert à démarrer synergy en tant que root lorsque le menu de login apparait
- le second sert à tuer le processus de synergy en tant que root lorsqu'un utilisateur se connecte
- le troisième sert à redémarrer synergy en tant qu'utilisateur, lorsqu'un utilisateur se connecte
Vous trouverez plus d'informations à ce propos dans la section UNIX de la page http://synergy2.sourceforge.net/autostart.html.
Configuration du pare-feu
Si vous utilisez un pare-feu, il est nécessaire d'ouvrir le port 24800 (TCP). La règle IPTable suivante peut être utilisée :
iptables -A INPUT -p tcp -i $interface --dport 24800 -j ACCEPT
$interface est le nom de votre interface réseau (ex. : eth0).
Astuces
- Maintenant que Synergy est installé et configuré, vous pouvez copier et coller du texte entre les machines (PAS DES FICHIERS !! voir "rsync" pour tranférer des fichiers) .
Voir aussi
- QuickSynergy, une interface graphique à Synergy
- http://synergy-foss.org/ : Site officiel de Synergy
- https://launchpad.net/synergy2 : Synergy sur Lauchpad
- https://help.ubuntu.com/community/SynergyHowto : Documentation Ubuntu en anglais