notifications mit sound? notification-daemon / libcanberra

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Kermit24
Beiträge: 311
Registriert: 29.04.2006 14:44:39

notifications mit sound? notification-daemon / libcanberra

Beitrag von Kermit24 » 09.04.2012 12:25:55

Hallo,
ich nutze lxde und möchte bei Popup-Benachrichtigung gerne einen Ton hören, weil ich nicht immer am Rechner hänge.

Ich habe herausgefunden, dass die Benachrichtungen über den 'notification-daemon' kommen (0.7.4-1 ist bei mir installiert). Dieser sollte eigentlich sound unterstützen über libcanberra.
Sounds im gdm und über Terminal mit 'canberra-gtk-play -d "Hallo world" -i bell' funktionieren einwandfrei. Jedoch bleibt der notification-daemon bei eintreffen einer Nachricht (z.B. mit 'notify-send test') einfach stumm :(

Ich habe mir sogar schon über 'apt-get source notification-daemon' die Quellen geholt. Darin gibt es eine sound.c, wo diese Funktion drin ist:

Code: Alles auswählen

#include "config.h"

#include "sound.h"

#include <glib/gi18n.h>
#include <canberra-gtk.h>

void
sound_play_file (GtkWidget *widget,
                 const char *filename)
{
        ca_gtk_play_for_widget (widget, 0,
                                CA_PROP_MEDIA_ROLE, "event",
                                CA_PROP_MEDIA_FILENAME, filename,
                                CA_PROP_EVENT_DESCRIPTION, _("Notification"),
                                NULL);
}
Nur was ist die event id? Der Parameter "filename", der übergeben wird? Leider finde ich in den übrigen sourcen überhaupt keinen Aufruf dieser Funktion:

Code: Alles auswählen

.-(~/notification-daemon-0.7.4/src)----------------------------(user@fitpc2i)-
`--> grep sound_play_file * -R
sound.c:sound_play_file (GtkWidget *widget,
sound.h:void sound_play_file (GtkWidget *widget,
Gibt es sonst ein notification daemon, der auch sound unterstüzt? xfce4-notifyd scheint überhaupt kein Sound zu können.
Das alles ist doch ziemlich arm :(. Seit 3 Stunden versuche ich nun einen einfachen beep hinzubekommen :(

schauinsland
Beiträge: 455
Registriert: 19.11.2007 11:17:40

Re: notifications mit sound? notification-daemon / libcanber

Beitrag von schauinsland » 09.04.2012 14:14:35

Hallo.

In ihrer Eigenschaft als (afaik bisher einzige) Implementierung der Sound Theme and Naming Specifications von freedesktop.org benötigt libcanberra eines der sog. sound themes. Der Abschnitt Sound Naming Specification definiert Namen für die in den sound themes enthaltenen Audio-Dateien.
Die in Debian vorhandenen sound themes - Debianfreedesktop-sound-theme und Debianmoblin-sound-theme - enthalten allerdings nur einen Bruchteil der im Standard vorgesehenen Namen.
Es kann daher in der Praxis vorkommen, dass prinzipiell alles wunderbar konfiguriert ist und funktioniert, der Lautsprecher aber trotzdem stumm bleibt, weil ein Klang angefordert wird, der in den vorhandenen sound themes nicht enthalten ist.
(Dass Debianfreedesktop-sound-theme eigentlich eine Referenz sein soll, aktuell aber ein seit drei Jahren unverändertes Rudiment ist, sagt m. E. so einiges über den Status der ganzen Spezifikation aus.)

Debiannotification-daemon und Debianxfce4-notifyd sind ihrerseits Implementierungen der Desktop Notification Specification, die ja primär optische Benachrichtigungen zum Inhalt hat. Ihr Verhältnis zum Thema sound ist mir unklar. Es erscheint zwar im changelog und wie Du schreibst auch im Quelltext. Ansonsten konnte ich aber noch nichts dazu finden.
Sämtliche mir bekannte Anwendungen, die optische und akustische Benachrichtigungen vorsehen, z. B. Icedove / Thunderbird oder Orage, handhaben diese völlig unabhängig voneinander.
Ist also das Thema sound innerhalb der Desktop Notification Specification vielleicht generell noch im beta-Stadium?

Insgesamt gibt es so m. E. keine generelle Lösung zu Deiner Frage. Vielmehr müsstest Du versuchen, akustische Benachrichtigungen innerhalb der jeweiligen Anwendungsprogramme oder Systemkomponenten einzeln zu aktivieren.

Kermit24
Beiträge: 311
Registriert: 29.04.2006 14:44:39

Re: notifications mit sound? notification-daemon / libcanber

Beitrag von Kermit24 » 09.04.2012 20:23:32

Deshalb habe ich ja schon im Source von notification-daemon nachgeschaut, weil ich dachte, dass der benötigte sound in den lückenhaften sound-themes von debian fehlt. Mit canberra-gtk-play habe ich das Abspielen der Sounds des jeweiligen Soundthemes ja getestet. Die Sound-IDs sind ja sicher spezifiziert.

Also bei mir kommen die Benachrichtigungen vom Browser auch alle nur beim notification-daemon an (beispielsweise wenn ein Download beendet ist)! Wenn der notification-daemon eine Nachricht erhält und das Popup einblendet, wäre es doch nicht zuviel verlangt dabei einen Systemklang abzuspielen? Eventuell kann man bei den Browsereinstellung auch individuell Klänge einstellen (nicht nachgeschaut), aber das jede (gtk-)Anwendung sich selber darum kümmern muss, kann ja nicht das Ziel sein?
Um Konkret zu werden: Es geht mir aktuell um den RSS-Feedreader liferea, den ich seit jeher nutze. Dieser kann auch Benachrichtungen über neue Feeds an den Benachrichtungsdienst abgeben, aber selbsttätig wohl auch keine Klänge dazu wiedergeben. Ich finde schon, dass der Benachrichtungsdienst das ruhig übernehmen sollte und somit eine standardisierte Klang-ID für Benachrichtigungen über canberra wiedergeben (wenn nichts spezifiziert ist, dann halt einfach die ID bell oder einen anderen standardklang).

Ansonsten finde ich es schon ziemlich arm, dass man heutzutage offenbar immer noch keine funktionierende xdg/freedesktop.org-Spezifikation für Systemklänge bei gtk-Anwendungen vernünftig umgesetzt hat? Ich meine, ich brauche sicher kein nerviges Tuten beim Öffnen/Schliessen/Maximieren von Fenstern. Aber manchmal sind Systemklänge eben doch sinnvoll.

Antworten