Determinar o nome do soquete $ DISPLAY no OS X 10.6?

Determinar o nome do soquete $ DISPLAY no OS X 10.6?

Estou procurando fazer algo um pouco estranho. Estou fazendo SSHdeum servidorparaum cliente Snow Leopard para iniciar um processo de exibição de dados X11. Em outras palavras, o encaminhamento X11 do SSH não é o que eu quero.

Eu posso fazer:

client$ echo $DISPLAY
/tmp/launch-SOMETHING/org.x:0
client$ ls -l $DISPLAY
srwx------  1 myuser  wheel  0 Dec  9 15:47 /tmp/launch-SOMETHING/org.x:0

E, quando eu faço:

server$ ssh myuser@client
client$ export DISPLAY=/tmp/launch-SOMETHING/org.x:0
client$ xterm

Felizmente recebo meu xterm.

O que preciso, então, é de alguma forma de descobrir o valor correto para $DISPLAY na minha sessão ssh. Pelo que li, $DISPLAY é definido pelo launchd, mas não encontrei nenhuma maneira de ver esse valor.

Se for importante, sei que quando meu processo se conectar de $server a $client, $client fará login no terminal como o mesmo usuário.

Responder1

Não tenho certeza se esta é a melhor resposta (vou esperar alguns dias para sinalizá-la!), Mas parece promissora:

Primeiro, crie um script em $client, digamos, save_display.sh:

#!/bin/bash
echo $DISPLAY > /path/to/saved_disp

Em seguida, crie um LaunchAgent .plist para ele e salve-o em ~/Library/LaunchAgents. Faça com que comece com um intervalo de 60 segundos ou algo assim.

Finalmente, carregue-ona sessão Aqua:

launchctl load -S Aqua ~/Library/LaunchAgents/my.display.saver.plist

Se você carregá-lo normalmente, $DISPLAY não será definido e seu arquivo ficará vazio.

Então,

server$ ssh myuser@client
client$ export DISPLAY=`cat /path/to/saved_disp`
client$ xterm

e sucesso.

Parece continuar funcionando durante as reinicializações. Estou muito feliz com isso.

informação relacionada