Waking my #Librem5 from suspend when a new #matrix message triggers a notification.
Starring:
- matrix server: #conduit
- #UnifiedPush and notification server: #ntfy
- #sip client: #pjsua
- #fractal: matrix client
- #feedbackd: rhythm & sound
Note to myself: if you play with sound-themes on your #Librem5 (and probably any other #MobileLinux device) and you seem to be stuck with the default sound theme (freedesktop) then delete ~/.cache/event-sound-cache.tdb*
and restart #feedbackd.
Thanks to @agx@librem.one for helping me on matrix:community-librem5 and for the great software!
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()