Les programmes X savent à quelle session X ils sont censés parler en examinant la DISPLAY
variable d'environnement.
Vous devez d'abord découvrir ce qui DISPLAY
est défini dans la session X où vous souhaitez que votre programme s'exécute. Pour ce faire, émettez la commande à l' echo $DISPLAY
intérieur d'un terminal X dans cette session X. Obtenir généralement quelque chose comme :0.0
est sorti.
Disons que vous voulez commencer l'excellent programme xclock
programme dans votre session X où DISPLAY
est :0.0
, mais vous voulez faire à la console. Vous appuyez ensuite sur Alt-Ctrl-F1 pour passer à cette console, puis tapez:
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
Ensuite, vous revenez à X en appuyant sur Alt-Ctrl-F7 ou Alt-Ctrl-F8 (ou peut-être une autre touche F, selon votre saveur Linux) et regardez la nouvelle jolie horloge murale que vous avez là-bas.
En fait, vous auriez pu exécuter la commande ci-dessus dans n'importe quel shell sur cette même machine (via SSH, dans n'importe quelle session X, sur n'importe quelle console, etc.) - le fait que vous ayez spécifié DISPLAY=:0.0
avant la commande signifie que la xclock
fenêtre apparaîtra toujours dans la même session X.
En fait - à part le fait que les programmes X le regardent - il n'y a rien de spécial dans la DISPLAY
variable. Normalement, lorsque vous démarrez des programmes à partir d'un terminal X, ils démarrent au bon endroit car ils DISPLAY
ont déjà été définis pour vous.
Au lieu d'utiliser la commande ci-dessus, vous pouvez également la diviser en deux en définissant d'abord DISPLAY
, puis en exécutant xclock
. Dans ce cas, le DISPLAY
paramètre persistera jusqu'à ce que vous fermiez ce shell, et tous les programmes X suivants démarrés à partir de là s'ouvriront dans la même session X que xclock
.
# variables set w/o a command are local to the shell,
export DISPLAY=:0.0 # unless exported
xclock