Os programas X sabem com qual sessão X eles devem conversar, observando a variável de ambiente DISPLAY
.
Primeiro, você precisa descobrir em que DISPLAY
está definido na sessão X em que deseja que seu programa seja executado. Faça isso emitindo o comando echo $DISPLAY
dentro de um X-terminal nessa sessão X. Normalmente, obtém algo como :0.0
.
Digamos que você queira iniciar o excelente programa xclock
em sua sessão X, em que DISPLAY
é :0.0
, mas você quer fazer isso no console. Em seguida, pressione Alt-Ctrl-F1 para mudar para esse console e digite:
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
Depois, você volta para X pressionando Alt-Ctrl-F7 ou Alt-Ctrl-F8 (ou talvez outra tecla F, dependendo do seu sabor no Linux) e assiste ao novo wallclock bonito que você tem lá.
Na verdade, você poderia ter executado o comando em qualquer shell na mesma máquina (via SSH, em qualquer sessão X, em qualquer console, etc.) - o fato de você ter especificado DISPLAY=:0.0
antes do comando significa que a janela xclock
sempre aparecerá na mesma sessão X.
Na verdade, além do fato de os programas X olharem para ele, não há nada de especial na variável DISPLAY
. Normalmente, quando você está iniciando programas a partir de um terminal X, eles começam no lugar certo porque DISPLAY
já foi definido para você.
Em vez de usar o comando acima, você também pode dividi-lo em dois definindo primeiro DISPLAY
e, em seguida, executando xclock
. Nesse caso, a configuração DISPLAY
persistirá até você fechar o shell, e todos os programas X subseqüentes iniciados a partir dele serão abertos na mesma sessão X que xclock
.
# variables set w/o a command are local to the shell,
export DISPLAY=:0.0 # unless exported
xclock