separator-foreground = ${colors.secondary}
font-0 = "Inconsolata Nerd Font:weight=regular;2"
padding = 1
-modules-left = slackware gmail-0 gmail-2 gmail-1 pulseaudio
+modules-left = slackware gmail-0 gmail-2 gmail-1 mail
modules-center = xworkspaces
-modules-right = info-airqualityindex weather xkeyboard
+modules-right = info-airqualityindex weather pulseaudio xkeyboard
dpi = 96
enable-ipc = true
font-0 = "Inconsolata Nerd Font:weight=regular;2"
padding = 1px
modules-left = duckstation dunst-snooze windowlist
-modules-center = spotify spotify-prev spotify-play-pause spotify-next
+modules-center = spotify spotify-song spotify-prev spotify-play-pause spotify-next
modules-right = date
dpi = 96
enable-ipc = true
# kdeconnect
# include-file = /home/danix/.config/polybar/modules/kdeconnect.ini
+# mail danix@danix.xyz
+include-file = /home/danix/.config/polybar/modules/mail.ini
+
# gmail-0
include-file = /home/danix/.config/polybar/modules/gmail-0.ini
--- /dev/null
+#! /usr/bin/env python
+
+# account and server details
+USER = "danix@danix.xyz"
+PWD = "I1SmsmcA."
+SERVER = "mail.privateemail.com"
+
+# imports
+import sys, traceback
+import time
+import imaplib
+import argparse
+import subprocess
+
+# command line arguments
+parser = argparse.ArgumentParser()
+parser.add_argument('-i', '--interval', default=3600)
+parser.add_argument('-l', '--label', default='INBOX')
+parser.add_argument('-p', '--prefix', default='\uf0e0')
+parser.add_argument('-c', '--color', default='#e06c75')
+args = parser.parse_args()
+
+unread_prefix = '%{F' + args.color + '}' + args.prefix + ' %{F-}'
+error_prefix = '%{F' + args.color + '}\uf06a %{F-}'
+count_was = 0
+
+def print_count(count, is_odd=False):
+ tilde = '~' if is_odd else ''
+ output = ''
+ if count > 0:
+ output = unread_prefix + tilde + str(count)
+ else:
+ output = (args.prefix + ' ' + tilde).strip()
+ print(output, flush=True)
+
+def update_count(count_was):
+ imap = imaplib.IMAP4_SSL(SERVER)
+ imap.login(USER, PWD)
+ status, messages = imap.select(args.label)
+ total = imap.search(None, 'UNSEEN')
+ count = len(total[1][0].split())
+ if count_was < count and count > 0:
+ subprocess.run(['canberra-gtk-play', '-i', 'message'])
+ imap.close()
+ imap.logout()
+ return count
+
+def main(count_was):
+ try:
+ while True:
+ count_was = update_count(count_was)
+ print_count(count_was, False)
+ i = int(args.interval)
+ time.sleep(i)
+ except KeyboardInterrupt:
+ print("Shutdown requested...exiting")
+ except Exception:
+ traceback.print_exc(file=sys.stdout)
+ sys.exit(0)
+
+if __name__ == "__main__":
+ main(count_was)