Partage de clavier et souris entre PC et Mac

Synergy : pont entre Fedora et OS X

Cet article explique comment partager un unique clavier et souris entre deux (ou plus) machines, en l’occurrence entre mon serveur Fedora 9 et mon Mac Mini, et explique comment fixer un bug survenant avec OS 10.5 qui ne permet pas de faire tourner le serveur Synergy en daemon. Le Mac qui est ma station de travail sera le serveur Synergy alors que la Fed qui officie chez moi comme un serveur fera office de client Synergy. C’est compliqué hein ;P
Pour la suite, le serveur Fedora s’appellera edoras.argonath.local et le Mac Mini perlargir.argonath.local.

Installations

L’installation sur la Fedora se fait très simplement avec yum :

# yum -y install synergy

Pour OS X, il faut télécharger l’archive et la dé-targézéder où vous voulez. J’ai mis tout ce beau monde sous /usr/share.

Configuration

Synergy fonctionne en client-serveur, une machine va être dédiée comme serveur de clavier-souris, dans mon cas, il s’agit du Mac. La Fedora se contentera d’attendre pour se connecter au serveur Synergy et ainsi bénéficier des périphériques du Mac.
Le principe de Synergy est assez simple et logique – et permet également de s’emmêler les pinceaux lorsque le nombre de machines augmente. Il suffit de dire où sont les machines en disant par exemple : edoras est à la droite de pelargir et pelargir est à la gauche d’edoras. A noter qu’il faut le dire explicitement dans les deux sens, sinon lorsque la souris sera sur l’écran de droite, elle ne le quitterait plus si on avait omis la configuration inverse.

Sur pelargir (le Mac), créer un fichier de configuration synergy.conf de cette forme :

section: screens
screen1:
screen2:
end
section: links
screen1:
right = screen2
screen2:
left = screen1
end

Les noms d’hôtes sont utilisés (à la place des screen1 et screen2 de l’exemple ci-dessus). C’est important car Synergy fonctionne sur TCP/IP, il utilise donc le réseau pour connaître et atteindre les machines. Il est même préférable d’utiliser les FQDN.
De l’exemple théorique du dessus découle mon fichier de configuration :

section: screens
pelargir.argonath.local:
edoras.argonath.local:
end
section: links
pelargir.argonath.local:
right = edoras.argonath.local
edoras.argonath.local:
left = pelargir.argonath.local
end

Test

Il est temps de tester cette configuration. Pour cela, le programme serveur synergys va être lancé en mode foreground grâce à cette commande :

$ /usr/share/synergy/synergys -f --config /usr/share/synergy/synergy.conf

Côté client sur edoras, lancer cette commande grâce à la commande cliente synergyc suivie du nom du serveur:

$ synergyc -f pelargir.argonath.local

Si aucun message d’erreur n’apparaît sur la console, essayez de passer la souris d’un écran à l’autre, cela devrait marcher et des messages de debug devraient apparaître sur la console suivant vos actions. Par défaut, le debug est assez bavard, chaque entrée/sortie de la souris est inscrit avec ses coordonnées.
En cas de soucis, voir la section troubleshooting du site de Synergy.


synergys en mode foreground avec un debug plutôt bavard sur l’activité

Si tout fonctionne, en situation normale, il suffirait de relancer les deux programmes sans l’option -f, ce qui ferait fonctionner synergy en daemon (en arrière-plan). Mais un bug avec OS 10.5 empêche le programme de tourner.

Contournement du bug d’OS 10.5

L’astuce consiste à démarrer synergys grâce au super-daemon launchd avec l’option -f. Pour cela, il faut créer un fichier net.sourceforge.synergy2.plist sous /Library/LaunchAgents/, l’endroit où sont stockés tous les fichiers plist des daemons qui démarrent avec la machine ou on-demand :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.sourceforge.synergy2</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/share/synergy/synergys</string>
<string>-f</string>
<string>-1</string>
<string>--config</string>
<string>/usr/share/synergy/synergy.conf</string>
<string>--debug</string>
<string>WARNING</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Synergy Server</string>
</dict>
</plist>

Ce fichier va lancer la commande /usr/share/synergy/synergys -f -1 –config /usr/share/synergy/synergy.conf –debug WARNING. -f indique bien qu’il est lancé en foreground. L’option -1 signifie que le programme n’est pas relancé en cas d’arrêt, sous OS X, c’est launchd qui va redémarrer le programme, donc mieux vaut mettre cette option. Quant au niveau de debug WARNING, c’est pour éviter d’avoir toutes les notifications lorsque la souris bouge.

On démarre le service grâce à la commande launchctl en chargeant ce service :

# launchctl load /Library/LaunchAgents/net.sourceforge.synergy2.plist

Le serveur est lancé et le sera à chaque démarrage de pelargir.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *