Le programme client (par exemple, votre application graphique)
sait à quelle unité d'affichage il doit se connecter en consultant la
variable d'environnement DISPLAY
. Cependant ce paramètrage peut être
modifié, en lançant le client avec l'argument -display
hostname:0
dans la ligne de commande. Quelques exemples peuvent
clarifier les choses.
Notre ordinateur est connu du monde extérieur sous le nom light, et nous
sommes dans le domaine uni.verse.
Si nous fonctionnons avec un serveur X normal,
l'unité d'affichage est connue comme étant light.uni.verse:0
.
Nous voulons faire tourner le programme de dessin xfig
sur un ordinateur à distance, appelé
dark.matt.er
,
et afficher sa sortie ici, sur light.
Supposons que vous vous soyez déjà connecté par telnet à l'ordinateur distant,
dark.matt.er
.
Si l'interpréteur de commande de l'ordinateur éloigné est csh :
dark% setenv DISPLAY light.uni.verse:0
dark% xfig &
Ou, d'une autre manière :
dark% xfig -display light.uni.verse:0 &
Si c'est sh qui tourne sur l'ordinateur à distance :
dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &
Ou, autrement :
dark$ DISPLAY=light.uni.verse:0 xfig &
Ou, bien sûr, également :
dark$ xfig -display light.uni.verse:0 &
Il paraît que certaines versions de telnet transmettent automatiquement la
variable
DISPLAY
à l'ordinateur hôte éloigné. Si vous avez l'une ce celles-ci, vous avez de la
chance, et c'est effectivement automatique. Si ce n'est pas le cas, la
plupart des versions de telnet doivent transmettre la variable
d'environnement TERM
, et avec un bidouillage judicieux, il est
possible de superposer la variable
DISPLAY
sur la variable TERM
.
L'idée, sous-jacente à cette superposition, est de réaliser une sorte de script
pour effectuer ceci : avant la connexion par telnet, donner la valeur de
DISPLAY
à TERM
. Puis de lancer telnet. Du côté de l'ordinateur
distant, dans le fichier .*shrc
concerné, lire la valeur de
DISPLAY
à partir de TERM
.