Mensagem de transmissão do terminal para o usuário conectado localmente

5

Aqui está o que estou tentando fazer. As crianças estão no Ubuntu assistindo filmes, youtube, etc. Estou na minha caixa de janelas fazendo o que quer que seja. Uma vez que as crianças têm fones de ouvido implantados em seus ouvidos, eu quero entrar no terminal e enviar uma mensagem de algum tipo para eles para chamar sua atenção ou dar-lhes uma mensagem. Eu já sei como logar remotamente no terminal para trabalhar na caixa enquanto eles estão brincando.

Eu vi algumas opções como "Wall" ou "Write", mas, aqueles parecem funcionar apenas em logins de terminal. Eu posso enviar mensagens para minha conta de teste conectada através do terminal, mas nada sai para o usuário local sentado na frente do monitor.

Quais são minhas opções? Para a maior parte, gostaria que uma janela aparecesse com qualquer mensagem que eu estivesse tentando transmitir que interrompesse o que eles estão fazendo quando o youtube ou o que quer que seja em tela cheia.

Pensamentos? Sugestões? Conselho?

    
por KC5SDY 25.08.2015 / 05:12

3 respostas

1

Conceder acesso

xhost +local:

ou desabilita o controle de acesso, os clientes podem se conectar de qualquer host (má idéia, mas parece estar bem na sua rede)

xhost +

Agora você pode fazer isso a partir da sua conexão remota:

DISPLAY=:0 xmessage -center " THIS IS A TEST MESSAGE"

Abaixo está uma pequena demonstração. Eu compartilhei a sessão entre TTY1 e o terminal GUI. Como você pode ver, não há nenhuma variável de ambiente definida para DISPLAY , portanto, esse terminal é como se eu estivesse trabalhando em TTY1. O comando acima define temporariamente a variável DISPLAY , fazendo com que o xmessage apareça na instância do xserver naquele display.

Eu tentei fazer a mesma coisa com notify-send , mas isso não funcionou.

EDITAR

xmessage é um pouco pequeno. O que eu prefiro é usar o diálogo zenity . Por exemplo,

DISPLAY=:0 zenity --info --text=" THIS IS ZENITY INFO DIALOG "

    
por Sergiy Kolodyazhnyy 25.08.2015 / 06:07
1

Como você deseja criar um pop-up na tela, seria mais fácil:

1) Inicie um programa (eu usaria um script Perl) quando seus filhos fizerem logon. Coloque em segundo plano. O script Perl deve ouvir uma conexão TCP em alguma porta não usada acima de 1024 e abaixo de 65536 , digamos, porta 12345 . Quando recebe uma mensagem (acima de TCP port 12345 ), ela pode gerar o pop-up e aguardar a próxima linha.

2) No Windows, use putty para se conectar à porta TCP 12345 no servidor Ubuntu e digite sua mensagem.

    
por waltinator 25.08.2015 / 05:50
0

Se for uma mensagem curta e simples que você deseja, você pode usar notify-send . Isso criará uma mensagem de alerta de curta duração no canto superior direito da tela (no mesmo estilo que o Thunderbird usa para alertar você sobre novos emails, ou o Filezilla usa para alertar que uma operação de longa duração está completa).

notify-send "message text here"

ou

notify-send "title here" "message text here"

ou, se você realmente quiser a atenção deles,

notify-send "title here" "message text here" -i face-angry

que vai colocar uma cara de raiva (há uma surpresa!) antes da mensagem. Existem vários ícones que você pode usar. Para ver a lista disponível no seu computador, digite ls /usr/share/icons/gnome/32x32/emotes/ .

    
por TRiG 25.08.2015 / 10:09