Archives pour l'étiquette xhost

X11 Export display entre Linux et Mac osx

Comment ?

Y-a-t’il un moyen d’utiliser le serveur graphique X11 d’un linux pour lancer des applications sous linux et les afficher sur mon mac ?


Poste: linux Poste: mac osx
Serveur X Serveur X
[Adr. IP: 192.168.0.1]------------[Adr. IP: 192.168.0.2]

Installation X11 sur Osx

On commence par installer le serveur X11 sur le mac en ulisant le CD N°1 de OSX livré avec lui. Chercher à la racine du cd le paquer d’installation nommé « Optional Installs.mpkg », lancer le et sélectionner X11 dans le menu offert.

Lancer et configurer X11 sur le macbook

Lancer le serveur graphique X11 sur le mac (chercher dans applications puis utilitaire). Le serveur X lancera un terminal dans lequel j’autorise les connexions sur le serveur X du mac depuis le poste linux (adresse IP 192.168.0.1) par la commande xhost :


mac:~ moi$ xhost +192.168.0.1

Configurer le Linux et lancer un application X11

J’utilise ensuite le protocole ssh pour me connecter au poste linux :


mac:~ moi$ ssh moi@192.168.0.1

Last login: Wed Dec 12 14:49:28 2007
Linux Linux 2.6.18-5-xen-686 #1 SMP Wed Oct 3 04:02:16 UTC 2007 i68
moi@linux:~ $

Ne pas oublier de définir sur quel « écran » le serveur X du poste linux va afficher l’application – en l’occurence sur l’interface X n°0 du mac (adresse IP 192.168.0.2) – par la modification de la variable d’environnement DISPLAY :


moi@linux:~ $ export DISPLAY=192.168.0.2:0.0

Et voilà, en lançant xeye sur ma console du poste linux j’obtiens l’affichage de l’application sur le mac :


moi@linux:~ $ xeye

Note : l’utilitaire nohup permet de router la sortie standard dans un fichier et garder ainsi la console propre et lisible. J’utilise également le suffixe & qui permet de libérér le programme lancé de la console et de garder la main pendant que l’application tourne.


moi@linux:~ $ nohup xeye &

Xnest ou comment éviter le bordel sur le bureau mac

Une variante intéressante pour éviter l’encombrement du (seul) bureau sur le mac est l’utilisation de l’outil Xnest qui permet de faire tourner en mode fenêtré un autre client/serveur X11. Essayez de lancer Xnest sur la console X11 de votre mac-mini : vous verrez une fenêtre toute vierge et prête à accueillir un tas d’applications linux ! Je paramètre un peu Xnest pour qu’il ait les options (lancez « man Xnest » ou « Xnest —help » pour l’aide) et dimensions souhaitées


mac:~ moi$ Xnest :1 -ac -kb -geometry 1024x768

Notez que le numéro de l’écran du serveur X11 par défaut est le zéro (:0). J’attribue donc le numéro 1 (:1) au nouveau serveur (Xnest) pour le différencier de celui par défaut (X11) du mac. Comme précédemment, je redéfini la sortie d’affichage, mais cette fois sur l’interface :1, et je lance l’application linux :


moi@linux:~ $ export DISPLAY=192.168.0.2:1.0
moi@linux:~ $ nohup /usr/bin/kate &

Un gestionnaire de fenêtre en plus de X11 ?

Ou encore mieux, lancer directement un gestionnaire de fenêtre linux (FluxBox par exemple c’est tellement léger) dans l’interface Xnest fenêtrée du macbook :


moi@linux:~ $ export DISPLAY=192.168.0.2:1.0
moi@linux:~ $ nohup /usr/bin/fluxbox &

Notes :

Le fichier xinitrc dans Os X est dans /etc/X11/xinit/. Vous pouvez l’éditer pour modifier le lancement du xterm par défaut. Fait le test avec cette ligne par exemple (un xterm a fond noir, texte vert et de 100 pixels par 20 pixels)


xterm -bg black -fg green -geometry 100x20

A suivre

Configuring and Running X11 Applications on Mac OS X
Technical Q&A QA1232 X11 FAQ
Technical Q&A QA1383 Enabling X11 Forwarding