Ceci est une ancienne révision du document !
DokuWiki
Version Breezy
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.
Attention! Synergy n'est pas vraiment sécurisé! Vous allez mettre en place quelque chose qui permettra à un autre ordinateur de controler le clavier et la souris du vôtre, donc n'utilisez Synergy n'importe où sans avoir sécurisé les machines. Il existe un moyen de sécuriser un peu plus le fonctionnement de Synergy en l'utilisant avec OpenSSH, mais ce n'est pas le but de cet article. Vous pouvez lire la documentations officielle sur le site de Synergy pour plus d'informations.
Obtenir Synergy
La manière la plus simple est d'installer le paquet apt par synaptic (http://packages.ubuntu.com/hoary/net/synergy en 'universe', merci à Daniel Lutz). Il est aussi possible, mais compliqué, de récupérer le code source sur le site officiel puis de compiler, paramétrer et l'exécuter en ligne de commande.
Par Synaptic
Note: Vous avez besoin d'une connexion internet pour les étapes suivantes.
- Cliquez sur le bouton "Rechercher" en haut de la fenetre. Puis tapez "synergy" pour lancer la recherche du paquet.
- Cliquez sur la case à coté de synergy puis choisissez "Sélectionner pour installation". Si votre recherche ne donne rien vérifiez l'orthographe de synergy et assurez vous d'avoir bien activé le dépôt Universe.
- Cliquez sur le bouton "Appliquer" puis attendez la fin de l'installation.
Par Apt-get
N'oubliez pas que Synergy se trouve dans le dépôt Universe, vous devez donc décommenter les lignes correspondant à ce dépôt dans /etc/apt/source.list. Si vous ne savez pas comment faire, voici une méthode :
Ouvrez /etc/apt/source.list dans un éditeur de texte, je vais le faire avec nano mais vous pouvez aussi utiliser gedit.
user@hoary:~$ sudo nano -w /etc/apt/sources.list
Maintenant cherchez la ligne commentée du dépôt Universe (une ligne commentée est précédée d'un #), elle doit ressembler a celle-ci :
# deb http://fr.archive.ubuntu.com/ubuntu breezy universe # deb-src http://fr.archive.ubuntu.com/ubuntu breezy universe
Supprimez les # en début de ligne, vous obtenez ceci:
deb http://fr.archive.ubuntu.com/ubuntu breezy universe deb-src http://fr.archive.ubuntu.com/ubuntu breezy universe
Maintenant dans nano appuyez sur Ctrl-o puis Ctrl-x cela va sauvegarder le fichier et sortir de nano.
Après cette modification, il vous faut mettre à jour vos sources:
user@hoary:~$ sudo apt-get update
Vos dépôts apt sont maintenant à jour et nous allons pouvoir installer Synergy:
user@hoary:~$ sudo apt-get install synergy
Voilà pour l'installation de Synergy sur une Ubuntu. Si vous souhaiter l'installer sur un autre système, comme Windows, vous trouverez toutes les informations nécessaire sur le site de Synergy.h
Configurer Synergy
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 Serveur
Pour configurer le serveur Synergy, créer le fichier /etc/synergy.conf (ou un fichier ~/.synergy.conf si vous préférez une configuration pour un seul utilisateur seulement), 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 sont les suivant:
- 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 leurs hostname.
- section: links défini de quelle façon la souris quittera l'ecran d'une des machines pour passer sur une autre. Ici on a placer l'écran de hoary a gauche de de celui d'arthur, donc si la souris va tout à droite de l'ecran de hoary elle arrivera sur la gauche de celui de arthur, et inversement. On aurait aussi pu placer ubuntu42 au-dessus de arthur en specifiant up au lieu de left, bottom au lieu de right, etc…
Configuration Client
Il n'y en a pas, il suffit d'installer Synergy
Executer Synergy
Pour lancer le serveur exécuter la commande :
user@hoary:~$ synergys -f
Si votre fichier synergy.conf est dans un endroit différent vous pouvez le spécifier en utilisant :
user@hoary:~$ synergys -f -c /endroit/de/votre/synergy.conf
Pour un client (dans ce tutoriel le client est aussi executé sous Ubuntu)
user@arthur:~$ synergyc -f <ip address of server>
si le serveur hoary a l'adresse ip 192.168.0.1 on a donc:
user@arthur:~$ synergyc -f 192.168.0.1
Note: l'option -f dit à Synergy de s'exécuter dans le 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.
Configurer pour un démarrage automatique
Vous ne voudrez probablement pas le lancer manuellement à chaque démarrage de votre machine, voici comment le parametrer pour un démarrage automatique:
Avec GNOME
Pour ajouter Synergy au démarrage automatique de votre session, allez dans Système → Préférences → Session, puis cliquez sur le 3ème onglet et ajoutez un programme au démarrage avec un Ordre de 40. La commande est celle que vous utilisiez au chapitre précédent mais attention ne mettez pas l'option -f cela empecherais le chargement de gnome en attendant indéfiniment la fin de Synergy.
Avec un autre Environnement
Si vous utilisez un service graphique pour vous identifier/loguer (par défaut Ubuntu utilise GDM et Kubuntu KDM, tout les deux fournisse ce service graphique).
Il est assez simple de lancer automatiquement Synergy. Il suffit d'ajouter un petit script exécutable dans le dossier /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 loguer 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/X11/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 etre exécuter par l'utilisateur plutot que par le root juste apres que l'identification soit 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/X11/gdm/PreSession/Default qui est le dernier script bash exécuté en root avant que l'utilisateur ne prenne la main. Modifier votre /etc/X11/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 /etc/X11/Xsession.d/ contenant:
#/bin/bash /usr/bin/killall synergys sleep 1 synergys --config /etc/synergy.conf
Fin
Maintenant que Synergy est installé et configuré, vous pouvez copier et coller entre les machines. J'utilise Synergy tout le temps, comme ça je peux écrire dans un écran et parler/lire mes mails avec l'autre. Synergy permet de rendre plus simple l'utilisation de plusieurs machines simultanément.