Trigger: Add condition based on focus of conversation
The trigger plugin currently allows me to make triggers conditional on whether there already is a conversation open with a certain peer or not. I'd like to argue that this is a fairly useless distinction for at least some use-cases.
- I am often working with multiple windows, like a browser, an editor and a chat program.
- I do not close all the conversation windows I had opened just because I change focus to another window. Doing that would be fairly annoying - not only would the conversation be cut off and only the last few messages shown, it would also involve doing way more clicks to switch from Gajim to another program.
- As a result, I often have a Gajim window in background that has quite a few conversations already open. But in terms of me noticing that anything happens, they could just as well all be closed - I won't actually see anything happening on any of these conversations, because the window is in background.
With the trigger plugin, I now have the choice between getting notifications even for the very conversation I am currently in, and not getting notifications for conversations that are open, but hidden in background. Every other chat program I used can detect whether the input focus is currently in some conversation, and only inhibit notifications for focused conversations (and/or maybe for all conversations of the focused window).
So, please, offer the option to make triggers conditional on where the input focus is. Currently, Gajim notifications are inferior compared to other messagers, even with all the flexibility offered by the Triggers plugin. Personally, I cannot imagine a situation where I would want to treat a conversation that's closed differently from a conversation that's open, but not visible to the user at all due to its window being minimized, in background, or on another workspace. But the focus option(s) could easily be added to the ones that depend on whether the conversation is open or not, so any previous setup continues to work.