diff --git a/.config/mail/async-mail.sh b/.config/mail/async-mail.sh new file mode 100755 index 00000000..218a45e0 --- /dev/null +++ b/.config/mail/async-mail.sh @@ -0,0 +1,4 @@ +#!/bin/env bash + +nohup /home/fic/.config/mail/mail-sync.sh >/dev/null 2>&1 & +exit 0 diff --git a/.config/mail/attach-picker.sh b/.config/mail/attach-picker.sh new file mode 100755 index 00000000..f71fb1fa --- /dev/null +++ b/.config/mail/attach-picker.sh @@ -0,0 +1,5 @@ +#!/bin/env bash + +TEMP=$1 +# foot "yazi --chooser-file '$TEMP'" +footclient yazi --chooser-file "$TEMP" diff --git a/.config/mail/mail-indicator.sh b/.config/mail/mail-indicator.sh new file mode 100755 index 00000000..4ff26b67 --- /dev/null +++ b/.config/mail/mail-indicator.sh @@ -0,0 +1,34 @@ +#!/bin/env bash + +# mailboxes to monitor +MAILBOXES=("personal" "school") +# named pipe for receiving refresh events +# from mail sync script +PIPE="/tmp/email_refresh_pipe" + +# Create pipe if doesn't exist +[[ -p "$PIPE" ]] || mkfifo "$PIPE" + +# Get unread counts and format for waybar +get_unread_counts() { + for mailbox in "${MAILBOXES[@]}"; do + count=$(notmuch count --output=messages "tag:unread and path:$mailbox/**") + printf "%s: %s " "$mailbox" "$count" + done + # we print a newline to let waybar know to display + # what we just printed + printf "|\n" +} + + +# run once for initial output +get_unread_counts +# begin event loop +while true; do + # cat blocks until data comes through pipe + # redirecting to null b.c. we don't want the + # pipe's contents to be printed to stdout + cat /tmp/email_refresh_pipe > /dev/null + # print unread indicator to stdout + get_unread_counts +done diff --git a/.config/mail/newmail.sh b/.config/mail/newmail.sh new file mode 100755 index 00000000..9739d115 --- /dev/null +++ b/.config/mail/newmail.sh @@ -0,0 +1,4 @@ +#!/bin/env bash + +notify-send "New mail in $1 inbox!" +/home/fic/.config/mail/mail-sync.sh