- TypeScript 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| index.ts | ||
| README.md | ||
NotificationLimitIncrease
An Equicord user plugin that makes desktop notifications from the same channel stack up instead of replacing each other.
Why
Discord keeps a list of the notifications it has shown for each channel. When you open the channel, mark it read, or focus the window, it closes all of them. That list has a size limit, and adding a notification past the limit closes the oldest one:
DiscordNative.features.supports("notifications") ? 20 : 1
The "notifications" feature only exists when Discord's native notification module loads, which happens on Windows and macOS. On Linux, Discord uses plain HTML5 notifications, so the limit is 1: each new message closes the previous notification from that channel.
This plugin replaces that limit with a setting. Discord's own code still closes all of a channel's notifications when you open it.
Settings
| Setting | Default | Description |
|---|---|---|
maxPerChannel |
20 |
Max notifications kept per channel before the oldest is closed. 0 = unlimited. |
Install
nixcord
Using nixcord, with Equicord enabled:
programs.nixcord = {
userPlugins.notificationLimitIncrease =
"git+https://git.insberr.com/insberr/equicord-notification-limit-increase.git?rev=<full 40-character commit>";
extraConfig.plugins.NotificationLimitIncrease = {
enable = true;
# maxPerChannel = 20;
};
};
- nixcord only accepts a full commit hash, not a branch or tag.
- The plugin goes under
extraConfig.plugins, notconfig.plugins, because nixcord's typed options don't know about user plugins.
Manual
Clone this repo into src/userplugins/ of an Equicord checkout, then build and inject Equicord as usual:
git clone https://git.insberr.com/insberr/equicord-notification-limit-increase.git src/userplugins/notificationLimitIncrease
Testing
- With Discord unfocused, have a few messages sent in one channel. They should stack in your notification daemon.
- Open that channel. They should all close.
To watch the show and close calls:
dbus-monitor "interface='org.freedesktop.Notifications'"
How it works
The plugin patches the track method of Discord's NotificationStore notification tracker, replacing the hard-coded limit in i.length > LIMIT with $self.getLimit(). If a Discord update changes that code, Equicord will report the patch as failed and notifications will behave as they do in stock Discord.
License
GPL-3.0-or-later