Les programmes X savent à quelle session X ils sont censés parler en examinant la DISPLAYvariable d'environnement.
Vous devez d'abord découvrir ce qui DISPLAYest défini dans la session X où vous souhaitez que votre programme s'exécute. Pour ce faire, émettez la commande à l' echo $DISPLAYintérieur d'un terminal X dans cette session X. Obtenir généralement quelque chose comme :0.0est sorti.
Disons que vous voulez commencer l'excellent programme xclockprogramme dans votre session X où DISPLAYest :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.0avant la commande signifie que la xclockfenê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 DISPLAYvariable. Normalement, lorsque vous démarrez des programmes à partir d'un terminal X, ils démarrent au bon endroit car ils DISPLAYont 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 DISPLAYparamè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