Os programas X sabem em qual sessão X eles deveriam conversar olhando a DISPLAY
variável de ambiente.
Primeiro, você precisará descobrir o 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 terminal X nessa sessão X. Normalmente, obter algo como :0.0
é emitido.
Digamos que você queira iniciar o excelente programa xclock
em sua sessão X onde DISPLAY
está :0.0
, mas deseja fazer isso no console. Você pressiona Alt-Ctrl-F1 para alternar para esse console e, em seguida, digita:
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
Então você volta ao X pressionando Alt-Ctrl-F7 ou Alt-Ctrl-F8 (ou talvez alguma outra tecla F, dependendo do seu sabor do Linux) e assiste ao novo belo relógio de parede que você tem lá.
Na verdade, você poderia ter executado o comando acima em qualquer shell da mesma máquina (via SSH, em qualquer sessão X, em qualquer console etc.) - o fato de que você especificou DISPLAY=:0.0
antes do comando significa que a xclock
janela sempre aparecerá a mesma sessão X.
De fato - além do fato de os programas X analisarem - não há nada de especial nessa DISPLAY
variável. Normalmente, quando você inicia 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 pela primeira configuração DISPLAY
e depois executando xclock
. Nesse caso, a DISPLAY
configuração persistirá até você fechar esse shell e todos os programas X subseqüentes iniciados a partir daí 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