Futur Mac

Utiliser X11 avec Mac OS X

Bien que basé sur un système Unix, Mac OS X utilise son propre système d'affichage graphique et de gestion de fenêtres (Aqua, aussi appelé Quartz) et non X11 comme la plupart des systèmes Unix. Cependant, il est tout à fait possible d'installer X11, versions client et serveur, par dessus Quartz et ainsi de retrouver la compatibilité avec le monde des stations de travail.

Ce tutorial explique comment l'installer et comment l'utiliser via le Terminal.

Installer X11

Certains conseillerons XDarwin, issu du projet Darwin, mais pourquoi aller chercher ailleurs alors qu'Apple a aussi fait un portage de XFree86 sur son OS ? Pour ceux qui on Panther ou Tiger (versions 10.3 et 10.4 de Mac OS X), il suffit de l'installer via le CD/DVD d'installation de MacOS X (le CD 3 pour Panther). Pour Jaguar, une version bêta (néanmoins tout à fait fonctionnelle) a été dans son temps distribuée gratuitement par Apple, mais ce n'est plus le cas. Néanmoins, vous pouvez la télécharger ici.

Si vous pensez un jour compiler des programmes utilisant X11, par exemple via des systèmes de gestion de paquets comme fink ou darwinports, il faut aussi installer X11SDK en plus de X11User.

Lancer X11

Maintenant, vous pouvez remarquer qu'une nouvelle application, appelée X11, est disponible dans /Applications (Jaguar) ou /Applications/Utilitaires/ (Panther et suivant). Il suffit de lancer cette application pour lancer le client, et le serveur X11.

Vous remarquerez qu'un terminal s'ouvre automatiquement, il s'agit du programme xterm qui fonctionne quasiment comme le terminal de MacOS X. À cette étape de la configuration, il n'est possible de lancer des programmes utilisant X11 que depuis ce nouveau terminal, par exemple :

shell% xclock

Depuis Panther, il est aussi possible de lancer une application X11 depuis le Finder en double-cliquant dessus ou depuis le Terminal avec la commande :

shell% open-x11 «la commande à lancer»

Utiliser X11 depuis le Terminal de Mac OS X

Vous avez sûrement remarqué qu'il n'est pas possible de lancer un programme depuis le Terminal comme c'est le cas depuis xterm. Il s'agit en fait d'un manque de configuration de l'environnement. Pour le corriger, il suffit de lancer la commande suivante dans le Terminal :

shell% export DISPLAY=":0.0"

ou, si vous utilisez tcsh :

shell% setenv DISPLAY ":0.0"

Cette commande doit être lancée dans chaque nouveau Terminal ouvert, mais il est possible de le faire automatiquement en rajoutant la ligne précédente dans le fichier ~/.bashrc ou ~/.tcshrc selon le type de shell que vous utilisez.

Pour parfaire la configuration et éviter qu'un xterm s'ouvre à chaque fois que vous lancez X11, il faut supprimer la ligne contenant "xterm &" dans le fichier /etc/X11/xinit/xinitrc.

Lancer un programme X11 à distance via ssh

Tout ce passe au moment de la connexion ssh où il fait activer le retour X11 (X11 forwarding) avec l'option -X (et souvent -C pour comprimer les données transitant sur le réseau) :

shell% ssh -XC «login»@«hôte»
hôte% xclock &

…et n'oubliez surtout pas qu'il faut lancer l'application X11 avant d'utiliser X11. Même si c'est évident, c'est souvent de là que viennent les problèmes.