Talvez isso seja respondido em outro lugar, mas eu não vi.
Estou executando o Ubuntu 14.04. Quando eu SSH na minha máquina, por exemplo:
ssh <user>@<machineip> notify-send "Hello"
Não vejo nada no monitor em que estou conectado à máquina. Se prefixo notify-send
com DISPLAY=:0.0
ou DISPLAY=:0
nada de diferente acontece. Eu nunca vejo nenhuma notificação na sessão atual.
Existe algum truque / mudança para fazer isso funcionar?
Caso isso não esteja claro, permita-me reiterar: Do Computador A, SSH para o Computador B. Na sessão SSH, desejo executar o envio de notificação para execução no Computador B. Espero que apareça uma notificação do tipo rosnado no monitor do computador B.
DISPLAY=:0 notify-send 'hello'
trabalharam para mim (não para o aikeru), tente isso antes de etapas mais complicadas.Respostas:
Acho que você está confundindo as várias tecnologias e como elas funcionam. Eu não esperaria que o daemon de notificação de um sistema pudesse enviar mensagens via SSH. Definir
excerto$DISPLAY
como é que o X11 envia a saída de um aplicativo para outro para fins de exibição, masnotify-send
está enviando uma mensagem real para o daemon de notificação. Esta mensagem é enviada usando alibnotify
biblioteca.Fonte: https://developer.gnome.org/libnotify/
Abordagem por aplicativo
Um método para associar as
notify-send
mensagens ao notificador do sistema local é usar uma abordagem descrita nesta postagem do blog intitulada: Notificações de IRC via SSH e libnotify . Essa abordagem precisaria ser personalizada para cada tipo de notificação que você deseja direcionar de volta ao seu notificador local.Tunelamento libnotify sobre SSH
Para uma solução mais geral,
excertolibnotify-over-ssh
pode ser mais o que você está procurando.Exibindo no servidor remoto
Se, por outro lado, você está simplesmente tentando usar
notify-send
para exibir mensagens em um servidor remoto ao qual costumavassh
se conectar, provavelmente precisará seguir uma das sugestões feitas nesta seção de perguntas e respostas intitulada: Usando a notificação de envio com cron . Mesmo que várias das respostas sugerissem que isso era desnecessário, eu tive que fazer o seguinte, como outros mencionados nos comentários no meu sistema Fedora 20, usando o Cinnamon como minha área de trabalho para fazer as coisas funcionarem.Para começar
notify-send
, tive que definir essa variável com o valor apropriado do ambiente de área de trabalho do sistema remoto.No meu sistema, pude usar um arquivo que é mantido exatamente para esse propósito.
NOTA: O nome do arquivo DBUS mudará de sessão para sessão.
fonte
notify-send
pode enviar mensagens para o daemon do notificador de escuta. Quando você faz login via SSH, esse ambiente não possui as informações necessárias para se comunicar com esse notificador, é o problema subjacente.$DISPLAY=:0
funcionaria, mas isso também não funciona para mim. Estou no Fedora 20 usando o Canela como minha área de trabalho. Usarstrace
para depurar isso mostra que há uma conexão que não é feita durante o SSH, ainda investigando o que está bloqueando isso.IMO, pode ser que você possa usar:
Obviamente, assumindo que ": 0" é o valor real da variável DISPLAY, se for o único usuário conectado no momento. Acho que precisamos usar a palavra especial "export" aqui porque estamos enviando dois comandos e se exportamos a variável que estará disponível para uso no segundo comando "notify-send". Os caracteres "&&" simplesmente permitem iniciar os dois comandos em uma linha.
fonte