Emacs: notmuch-indicator version 0.1.0
This is a simple package that renders an indicator with an email count
of the notmuch
index on the Emacs mode line. The underlying mechanism
is that of notmuch-count(1)
, which is used to find the number of items
that match the given search terms. In practice, the user can define one
or more searches and display their counters. These form a string which
realistically is like: @50 😱1000 💕0
for unread messages, bills, and
love letters, respectively.
- Package name (GNU ELPA):
notmuch-indicator
- Git repo on SourceHut: https://git.sr.ht/~protesilaos/notmuch-indicator
- Mirrors:
- Mailing list: https://lists.sr.ht/~protesilaos/notmuch-indicator
- Backronym: notmuch-… Increasingly in Need of Displaying Inconsequential Counters Alongside Trivia that Obscure Reality.
The GNU ELPA package will be built by the server in a few hours from now. Local time is 2022-09-21 07:43 +0300 and I expect it to be done by noon.
Below are the release notes, which are just the contents of the README, given that this is the first stable version.
This is a simple package that renders an indicator with an email count
of the notmuch
index on the Emacs mode line. The underlying mechanism
is that of notmuch-count(1)
, which is used to find the number of items
that match the given search terms.
The indicator is enabled when notmuch-indicator-mode
is on.
The user option notmuch-indicator-args
provides the means to define
search terms and associate them with a given label. The label is purely
cosmetic, though it helps characterise the resulting counter.
The value of notmuch-indicator-args
is a list of plists (property
lists). Each plist consists of one mandarory property and two optional
ones:
-
The
:terms
, which is required, is a string that holds the command-line arguments passed tonotmuch-count(1)
(read the Notmuch documentation for the technicalities). -
The
:label
, which is optional, is an arbitrary string that is prepended to the return value of the above. If nil or omitted, no label is displayed. -
The
face
, which is optional, is the symbol of a face that is applied to the:label
. It should not be quoted, so like:face bold
. Good candidates arebold
,italic
,success
,warning
,error
, though anything will do. If nil or omitted, no face is used.
Multiple plist lists represent separate notmuch-count(1)
queries.
These are run sequentially. Their return values are joined into a
single string.
For instance, a value like the following defines three searches:
(setq notmuch-indicator-args
'((:terms "tag:unread and tag:inbox" :label "@")
(:terms "from:bank and tag:bills" :label "😱")
(:terms "--output threads tag:loveletter" :label "💕")))
These form a string which realistically is like: @50 😱1000 💕0
.
The user option notmuch-indicator-refresh-count
determines how often
the indicator will be refreshed. It accepts a numeric argument which
represents seconds.
The user option notmuch-indicator-force-refresh-commands
accepts as
its value a list of symbols. Those are commands that will forcefully
update the indicator after they are invoked.
The user option notmuch-indicator-hide-empty-counters
hides zero
counters from the indicator, when it is set to a non-nil value.