When I use notify-send
to show a notification on the desktop, and then use it again to show a different notification, I have noticed that the second one only shows after the first one has disappeared.
Is there a way to get notify-send
to immediately replace an existing notification with a different one?
Best Answer
You can, but you must use a patched libnotify to do so
notify-send
does not have the capability to replace existing notifications before they have timed out (or disappeared). This is a known bug. However, a commenter on the bug report has posted a patch to fix it.Installing the patched libnotify-bin from PPA
I have created a patched version of the libnotify-bin package which allows replacements in my PPA. Currently it's for Ubuntu 12.04 only, but if you need it for any other currently supported release, please post a comment and I will try my best to make it available.
To install, open a terminal and:
How to use the replacement capabilities
The patched
notify-send
includes two new switches,-p
(or --print-id ), and-r
(or --replace-id ). The--help
describes them as:-p
, eachnotify-send
will return an ID N (number/integer).notify-send
with-r N
will replace the previous notification immediately.For example, for bash, you can save the ID from
notify-send -p ...
with:and then replace it with:
You can recursively use both -p and -r in a script, as long as the -r variable is initialized to 0 at the beginning.
Here's a simple script that shows notifications counting from 0 to 100 at half-second intervals: