Existe uma maneira de se comunicar com alguém em sua área de trabalho?

36

Minha esposa está em sua área de trabalho, alpha , que está executando uma versão recente do Ubuntu. Eu estou em um ônibus, usando o ConnectBot no meu telefone G1, e posso SSH em alpha de onde eu estiver.

Por motivos complicados, não consigo usar mensagens instantâneas, e-mail ou telefone para entrar em contato com ela. (Por exemplo, eu não quero acordar o bebê, meu cliente de mensagens instantâneas está quebrado, meu servidor de e-mail está desativado.) Minha única opção é enviar ssh para alpha remotamente e tentar fazer alguma coisa aparecer na tela. Ela está usando o KDE; Como posso fazer algo aparecer para chamar sua atenção e deixá-la saber que estou tentando me comunicar com ela? Eu pensei que era possível remotamente disparar algo (como xmessage) para aparecer em sua tela, mesmo que minha sessão SSH não tenha um display X.

EDIT: Para esclarecer, meu telefone não está executando qualquer sabor de X, então X-over-ssh não é possível. O seguinte trabalho?

$ export DISPLAY=:0
$ xmessage "test"
    
por dirtside 13.05.2011 / 01:53

4 respostas

28

Você pode dizer ao programa X qual display usar com a variável de ambiente DISPLAY , desde que você saiba qual display alpha está exibindo no momento. Quase certamente a única exibição é :0 , a menos que você tenha manualmente manipulado, então se você executar:

$ export DISPLAY=:0

Em seguida, qualquer aplicativo X que você executar será exibido no monitor de alpha . xmessage é uma boa opção para mostrar mensagens; também há xdialog . Se você tiver libnotify instalado, poderá usar notify-send para exibir uma mensagem no canto da tela:

    
por 13.05.2011 / 01:58
10

Como Michael Mrozek ilustra , você pode executar aplicativos X que são exibidos na área de trabalho de sua esposa. Tudo o que você precisa fazer é definir a variável de ambiente DISPLAY para o valor correto (quase sempre :0 )… e obter autorização.

Esta solução requer que você tenha permissão para ler os arquivos de sua esposa. O acesso ao servidor X requer uma autenticação “cookie” , que é uma senha que é gerada aleatoriamente quando o X é iniciado e armazenado em um Arquivo. O arquivo é geralmente ~/.Xauthority ; se não estiver, deve ser indicado na variável de ambiente XAUTHORITY . No Ubuntu com a configuração padrão (usando o Gdm), o cookie de sessão da sua esposa não está em ~wife/.Xauthority , mas em um arquivo com um nome gerado automaticamente; consulte a variável ssh DISPLAY . Consulte também Como root posso iniciar um programa gráfico na área de trabalho de outro usuário? , Linux: o wmctrl não pode abrir a tela quando a sessão é iniciada via tela ssh + .

Se sua esposa tiver um terminal de texto aberto, você poderá usar write como sugerido pelo user7440 para escrever algum texto em seu terminal. Isso requer que o terminal aceite tais notificações; você pode ativar e desativar isso com mesg y ou mesg n e não sei qual é o estado padrão em emuladores de terminal modernos.

Um mecanismo mais sofisticado que write é talk . O protocolo de conversa é o ancestral dos programas de bate-papo; você pode conversar com qualquer pessoa em uma máquina que esteja executando um servidor de conversação e cuja porta UDP 517 ou 518 (há duas variantes de protocolo) não é filtrada. Então instale o talkd Instale o talkd http: / /bit.ly/software-small , um cliente como ytalk Instale o ytalk http://bit.ly/software-small e ytalk wife . Há também um cliente X, xtalk Instale xtalk http://bit.ly/software-small . Até onde eu sei, as conversas simplesmente caíram no radar (todo mundo que se importa usa um dos modernos procotols de chat), e não há nenhum componente do sistema que gere uma notificação do KDE para uma solicitação de conversa.

Embora você diga que não é possível executar nenhum cliente de IM… um cliente de linha de comando IM em execução na sua máquina doméstica acessada por meio do SSH seria aprovado? Existem tais, por exemplo weechat Instalar weechat http://bit.ly/software-small . Você ainda estaria dependendo do servidor para conectá-lo à sua esposa, mas só seria acessado pela sua máquina doméstica, não pelo seu telefone.

    
por 13.05.2011 / 09:28
4

Se ela tiver uma janela de terminal aberta (use 'who' para descobrir), você pode escrever para esse terminal usando 'write'. Isso não funcionará com o terminal principal, pois o KDE o oculta, mas qualquer janela de terminal deve funcionar (se estiver na área de trabalho atual, não minimizada, ela está olhando para ela ...).

    
por 13.05.2011 / 07:25
3

Eu não estou 100% certo de que a configuração DISPLAY=:0.0 irá funcionar. Eu acho que você precisa de uma maneira de obter autorização para se conectar ao servidor X no PC da sua esposa. As ferramentas para fazer isso são xhost e xauth , mas elas parecem exigir que você já tenha acesso ao servidor X, então, presumivelmente, apenas sua esposa poderia executá-las. (Problema de galinha e ovo.)

Se você não conseguir, poderá iniciar um segundo servidor X, por exemplo, usando X :1 , ou talvez chvt possa ajudar.

Por exemplo, algo como

# X :1
# export DISPLAY=:1.0
# xmessage 'hello'

parece funcionar no meu sistema se eu o executar como root.

X :1 foi iniciado em vt7 no meu sistema, então você também pode executar

# chvt 7

para ter certeza de que a exibição X é a que está visível no momento.

    
por 13.05.2011 / 03:35

Tags