Published 2026-01-15
tag(s): #programming #emacs
The README pretty much tells the story of it, but why not repeat myself.
I found out a quite a while ago about notifications-notify, and used it to show
desktop alerts for events in my calendar, using my own CalDAV sync + the built
in appt.el. This worked OK, although honestly I am not using that integration
that much.
Which makes you wonder why did I build cdsync at all...but let's not go there.
Specially as we are talking about yet another package. >_>
So, desktop notifications from Emacs work nice, and I got in the habit of using them for all
sorts of little things. At work, under Windows, there's support for W32 notifications, but it
doesn't quite work as I would expect? I should maybe report that as a
bug...[1] I ended up monkey patching notifications-notify to
use an external program (no harm done, since Windows doesn't have D-Bus, I didn't need the
original there). And I continued to (ab)use desktop notifications for things that didn't
necessarily need them.
Nowadays though I also run Emacs on a shared Linux dev server, on the terminal. There's no
desktop notifications, which made me review the different usages for these and think of an
alternative. Because honestly...most are not good use cases for desktop notifications. It is
usually the output of some long running process, which I ended up checking in some buffer.
Also sometimes I would miss the notification pop up and forget about whatever I had running in
the background until later.
Enter gazette, available in
Source Hut[2]

That's all there is to the package. The number of notifications "unread" is reset when you
quit (or kill) the *gazette* buffer, and that removes the counter.
It's been pretty useful, since now all callbacks that sent notifications publish in there, and
I just check ONE buffer for output of whatever I was running.
Now, this creates a conundrum, where I am considering having more of my code depend on
gazette, but I don't want to impose. Then again, it is 120 lines, including the license header
and comments. 🤷
I also have the feeling that there has to be another package that does the same, but I didn't
find any. There's stuff for alerts, for internal logging, but couldn't find anything like this,
for "non-important" notifications.