aboutsummaryrefslogtreecommitdiffstats
path: root/mail-overview/waybar-mail.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mail-overview/waybar-mail.sh')
-rwxr-xr-xmail-overview/waybar-mail.sh68
1 files changed, 0 insertions, 68 deletions
diff --git a/mail-overview/waybar-mail.sh b/mail-overview/waybar-mail.sh
deleted file mode 100755
index ee07ecb..0000000
--- a/mail-overview/waybar-mail.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2026 Danilo M. <danix@danix.xyz>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# Waybar custom module in continuous mode: prints one JSON line per notmuch
-# commit, forever, and waybar redraws on each line. Waybar owns this process,
-# which is why there is no daemon to supervise and no interval to tune.
-#
-# The count is the total across every account. A per account breakdown is the
-# drawer's job; see mail-overview/README.md.
-
-set -u
-
-QUERY='tag:unread and tag:inbox'
-
-# notmuch knows where its own database is, so this follows a moved database
-# without an edit here.
-db="$(notmuch config get database.path 2>/dev/null)/xapian"
-
-emit() {
- local n
- n="$(notmuch count "$QUERY" 2>/dev/null)"
-
- # The output is the test, not the exit status. notmuch fails two different
- # ways: a rejected query prints nothing and exits 1, while a query Xapian
- # merely misparses ('tag:unread and ((') returns a plausible wrong number
- # and exits 0. Only the first is detectable, and it is the one that matters
- # here, because empty output would otherwise render as "no new mail". The
- # second is why QUERY is a fixed string and not built from anything.
- if [[ ! "$n" =~ ^[0-9]+$ ]]; then
- printf '{"text":"!","tooltip":"notmuch count failed","class":"error"}\n'
- return
- fi
-
- if [[ "$n" -eq 0 ]]; then
- printf '{"text":"","class":"empty"}\n'
- else
- printf '{"text":"%s","class":"unread"}\n' "$n"
- fi
-}
-
-if [[ ! -d "$db" ]]; then
- printf '{"text":"!","tooltip":"no notmuch database","class":"error"}\n'
- exit 1
-fi
-
-emit
-
-while inotifywait -qq -e close_write,moved_to "$db" 2>/dev/null; do
- # One commit touches several files. Without this the module redraws three
- # or four times per sync with intermediate counts.
- sleep 0.3
- emit
-done
-
-# Falling out of the loop means inotifywait itself failed. Say so rather than
-# exiting silently, which looks like an empty inbox.
-printf '{"text":"!","tooltip":"mail watcher stopped","class":"error"}\n'
-exit 1