Receiving SMS plays a long tune on my #Librem5. For a few persons I'd like to have this tune played also if they send me a message using #matrix.

A problem is that the #fractal flatpak does not use #feedbackd yet to signal new messages and on #PureOS #Byzantium there's no way to define different sounds for different notification events.

So I started testing a small script to read notifications and trigger feedback for messages coming from an account containing some string:

#!/usr/bin/python3 import gi import time gi.require_version('Lfb', '0.0') from gi.repository import Lfb from gi.repository import GLib import dbus from dbus.mainloop.glib import DBusGMainLoop def print_notification(bus, message): keys = ["app_name", "replaces_id", "app_icon", "summary", "body", "actions", "hints", "expire_timeout"] args = message.get_args_list() if len(args) == 8: notification = dict([(keys[i], args[i]) for i in range(8)]) if "account_i_want_to_be_notified_for_like_it_would_be_sms" in notification["summary"]: print( notification["summary"], ': ', notification["body"] ) event.trigger_feedback() Lfb.init('org.sigxcpu.lfbexample') event = Lfb.Event.new('message-new-sms') loop = DBusGMainLoop(set_as_default=True) session_bus = dbus.SessionBus() session_bus.add_match_string("type='method_call',interface='org.freedesktop.Notifications',member='Notify',eavesdrop=true") session_bus.add_message_filter(print_notification) GLib.MainLoop().run()

Follow

@me Good news: Fractal (and other clients) don't need to use feedbackd directly. They just needs to set the `im.received` `category` on the notification: (specifications.freedesktop.org) and handles the details.

This is supported by about all notification client libs (libnotify, glib/gio (docs.gtk.org/gio/method.Notifi)

Maybe file an issue with Fractal for that? Given that Fractal uses glib/gio it's a one line change.

@agx@librem.one I opened the issue here. Thanks for pointing this out!

Also read with great interest your test about chatty and ntfy.

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml