notify-send só funciona com sudo

2
MulherBBBBB32BBBBBes MulherB32BBBBBBBBBBBBBBBBesBBBBBBesBBBBBBBBBBesBBBBesBBBBBBesBBBBes
sudo notify-send Test "Hello World"
B32Bes Mulher32B32eseseses Mulher32Beses MulheresBBBeseses Mulher MulheresesBBBeseses Mulher MulheresesBBesesB MulheresBBesB MulheresesB MulheresBBBBesesesBBesBes
notify-send Test "Hello World"
Mulher Mulher MulherBB MulheresB MulheresBB MulheresBBBB MulheresBBBBBB MulheresBBBBBB32BBesBBesBBesBBesBBBBBBesesBBBBBBBBBBBeses

Mais informações

32BBes32Bes Mulher Mulher MulherB32B Mulher32B Mulher MulherBBB MulherBB MulherBBB MulherBB MulherBBBB MulherBB MulherBBBB MulherBB MulherBBBB MulherBB MulherBB MulherBB MulherBB MulherBBes

As notificações parecem usar notificar-osd em vez de notificação-daemon. A execução de notificação-envio aparece para iniciar um processo de notificação-osd sob o usuário que executou o envio de notificação. Não tenho certeza do que é o dbus.

Nenhuma mensagem de erro

Não há erros no syslog. Quando executo o código a seguir, não há mensagens de erro.

#include <libnotify/notify.h>
#include <stdio.h>
int main() {
    gboolean x = notify_init ("Hello world!");
    printf( "notify_init: %d\n", x );
    NotifyNotification * Hello = notify_notification_new ("Hello world", "This is an example notification.", "dialog-information");
    GError *err = NULL;
    x = notify_notification_show (Hello, &err);
    printf( "notify_notification_show: %d\n", x );
    if(err != NULL) {
        printf("Error detected!\n");
        printf("Error message:%s\n", err->message);
    }
    else {
        printf("No error detected.\n");
    }
    g_object_unref(G_OBJECT(Hello));
    notify_uninit();
    return 0;
}

Eu não sei o que estou fazendo. Obrigado pela ajuda.

Notifique Python

No passado, eu usei um programa python que tem notificações em funcionamento. Bes32eses MulherB32 Mulheres MulherB32 MulheresesesBes MulherB32 Mulher32es MulherB MulherBeses Mulheres Mulher MulherBes MulherB MulherB32esB MulherB32esB MulherBBeses MulherB MulherBBes MulheresesBBeseses

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gi
gi.require_version('Notify', '0.7')
from gi.repository import Notify

Notify.init("test")
n = Notify.Notification.new('test', 'test2')
n.set_urgency(Notify.Urgency.CRITICAL)    
n.show()

Código de link

Não sei por que isso funciona. O python Notify está apenas envolvendo a biblioteca usada no exemplo C. Eu prefiro não usar python, mas vou se for preciso.

Editar

O problema ocorreu novamente. Resolvido adicionando urgência crítica.

    
por aco 06.09.2016 / 08:14

2 respostas

1

Reiniciar resolveu o problema. Não tenho certeza do porquê.

Editar O problema ocorreu novamente. A utilização de urgência crítica fez com que a notificação aparecesse. O comando é:

 notify-send --urgency="critical" "asdf"
    
por aco 06.09.2016 / 21:14
0

Com esta resposta eu "consertei" o problema. Nenhum sudo precisava agora. Tem que definir novamente a variável de ambiente DBUS_SESSION_BUS_ADDRESS :

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";

Mas, como perguntado aqui :

  • notify-send -u critical "Nice title" "Nice description" funciona bem, mas
  • notify-send -u normal "Nice title" "Nice description" não funciona.

O uso também de -i parece obsoleto: notify-send -i "notification-network-wireless-full" "Summary" "Body" . Talvez devêssemos arquivar um bug .

    
por Pablo Bianchi 15.07.2017 / 21:28