I've been using vgmms for about a day and I noticed that a notification sound plays if I'm in the app itself, but when I'm not or the phone screen is off, it only turns on the blue LED. This isn't very useful if the phone is in my pocket and I can't see the LED flashing.
I looked around in the code and found this function: https://git.sr.ht/~anteater/vgmms/tree/master/item/src/state.rs#L186. If a message is received but the app is not open, it passes the "MessageMissed" notification to libfeedback, which it seems just flashes the blue light. I tested changing this by setting that event to MessageReceived and when I recompiled and ran, I got the ding I was expecting.
I feel like the better behavior is getting a real ding, just getting a blue light seems not useful. I looked at libfeedback and it looks like I can change the behavior in the theme file, so I'm going to try to do that first. I do know that chatty will make a ding sound when SMS's arrive and I'm not in the app. I'll have to check what it's doing.
It looks like chatty just sends the message-new-instant event no matter what.
According to the event-naming specification, this is the appropriate event to send in this situation ("message-missed-sms: The event used when a sms message was received but not seen by the user."). I think this is an upstream bug with the default feedbackd theme (possibly hidden by Chatty not implementing as much of it as it should).
Have you managed to configure the libfeedback theme to do something you consider acceptable? If it can't be done, we can work around it in vgmms for now.
In my own build I just changed the feedback event name so they both use "message-new-sms" now, which gives me the behavior I'd expect. I could also change the theme to have "message-missed-sms" have the same behavior as "message-new-sms". I'll try to open a ticket with feedbackd and see what they say about this. In the meantime, I feel like using just "message-new-sms" makes sense.
It looks like the right thing to do here is to not use libfeedback directly at all, but instead send a
GNotificationwith the category
im.received, and the shell can interact with libfeedback based on its knowledge of seen/unseen. The feedback theme issues are known upstream and it seems like they would be amenable to adding noise/vibration in the "missed" scenario.
I'll keep this bug open until we send notifications with the appropriate category.