dunst-project / dunst

Lightweight and customizable notification daemon
https://dunst-project.org
Other
4.42k stars 338 forks source link

`(n more)` is shown for notifications under the current pause level. #1294

Open SeerLite opened 4 months ago

SeerLite commented 4 months ago

Issue description

If the pause level is set to 100 (i.e. dunstctl set-paused true), and there is a notification that doesn't override said pause level then it is hidden. However, if at the same time a single notification that overrides 100 is sent, dunst displays a (1 more) pseudo-notification, taking up space on the screen and contributing to the count for notification_limit. (Commands to reproduce below with the minimal dunstrc)

Installation info

Minimal dunstrc and commands to reproduce ```ini [custom_rule] msg_urgency = "critical" override_pause_level = 100 ``` ```sh dunstctl set-paused true dunstify -u critical one dunstify -u normal two ```
bynect commented 4 months ago

You can set indicate_hidden = false to prevent this from happening

bynect commented 4 months ago

If however you want to still indicate the notifications with a bigger pause level if they exceed the notification_limit, I don't think it is possible at the moment

SeerLite commented 4 months ago

I don't think indicate_hidden should be related to this. Otherwise there'd be an undismissable "(n more)" notification when paused and notifications are waiting. But currently there's nothing unless a notification above the pause level is received

bynect commented 4 months ago

If I am not mistaken this is how it works at the moment: We consider notification with a paused level under the threshold as hidden. Thus, the indicate_hidden option applies for displaying the number of hidden notification. This is similar to when the notification_limit is exceeded.

But your worries about an eternal xmore notification are totally right. From what I tested hidden notification don't expire and since they are hidden by a pause level they will never show up. So we have to make a change to accommodate this.

What do you think would be a reasonable solution to this problem?