attempting email notifications
This commit is contained in:
		
							parent
							
								
									ce410049c2
								
							
						
					
					
						commit
						115e66633a
					
				|  | @ -26,6 +26,8 @@ bspc config active_border_color "#181a23" | ||||||
| bspc config focused_border_color "#bd93f9" | bspc config focused_border_color "#bd93f9" | ||||||
| bspc config presel_feedback_color "#bd93f9" | bspc config presel_feedback_color "#bd93f9" | ||||||
| 
 | 
 | ||||||
|  | bspc config split_ratio         0.71 | ||||||
|  | 
 | ||||||
| # Extra padding for polybar | # Extra padding for polybar | ||||||
| bspc config -m primary top_padding 34 | bspc config -m primary top_padding 34 | ||||||
| bspc config -m primary bottom_padding 0 | bspc config -m primary bottom_padding 0 | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ | ||||||
|     origin = top-right |     origin = top-right | ||||||
| 
 | 
 | ||||||
|     # Offset from the origin |     # Offset from the origin | ||||||
|     offset = 12x28 |     offset = 22x28 | ||||||
| 
 | 
 | ||||||
|     # Scale factor. It is auto-detected if value is 0. |     # Scale factor. It is auto-detected if value is 0. | ||||||
|     scale = 0 |     scale = 0 | ||||||
|  | @ -182,7 +182,7 @@ | ||||||
|     hide_duplicate_count = true |     hide_duplicate_count = true | ||||||
| 
 | 
 | ||||||
|     # Display indicators for URLs (U) and actions (A). |     # Display indicators for URLs (U) and actions (A). | ||||||
|     show_indicators = no |     show_indicators = yes | ||||||
| 
 | 
 | ||||||
|     ### Icons ### |     ### Icons ### | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,35 @@ | ||||||
| { pkgs, ... }: | { config, pkgs, lib, ... }: | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   safeName = lib.replaceStrings [ "@" ":" "\\" "[" "]" ] [ "-" "-" "-" "" "" ]; | ||||||
|  |   imapnotifyAccounts = | ||||||
|  |     filter (a: a.imapnotify.enable) (attrValues config.accounts.email.accounts); | ||||||
|  |   genAccountUnit = account: | ||||||
|  |     let name = safeName account.name; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       name = "imapnotify-${name}-mine"; | ||||||
|  |       value = { | ||||||
|  |         Unit = { Description = "imapnotify for ${name}"; }; | ||||||
| 
 | 
 | ||||||
|  |         Service = { | ||||||
|  |           ExecStart = "${pkgs.goimapnotify}/bin/goimapnotify -conf /nix/store/6030i9xdga98l2zyqarrqv5mrjynwm3i-imapnotify-anish-config.json"; # TODO horrible hard coded config location | ||||||
|  |           Restart = "always"; | ||||||
|  |           RestartSec = 30; | ||||||
|  |           Type = "simple"; | ||||||
|  |           # this is why we're overriding this stupid thing | ||||||
|  |           # We need dbus for notify-send on systemd | ||||||
|  |           Environment = [ | ||||||
|  |             "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus" | ||||||
|  |             "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/default/config" | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         Install = { WantedBy = [ "default.target" ]; }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  | in | ||||||
| { | { | ||||||
|   #age.secrets.fastmail.file = "/etc/nixos/secrets/fastmail.age"; |   #age.secrets.fastmail.file = "/etc/nixos/secrets/fastmail.age"; | ||||||
|   #age.secrets.fastmail.owner = "anish"; |   #age.secrets.fastmail.owner = "anish"; | ||||||
|  | @ -13,6 +43,10 @@ | ||||||
|     frequency = "*:0/30"; |     frequency = "*:0/30"; | ||||||
|     #postExec = "${pkgs.notmuch}/bin/notmuch new"; |     #postExec = "${pkgs.notmuch}/bin/notmuch new"; | ||||||
|   }; |   }; | ||||||
|  | 
 | ||||||
|  |   # call our stupid way of overriding the imapnotify service | ||||||
|  |   systemd.user.services = listToAttrs (map genAccountUnit [{ name = "anish"; }]); | ||||||
|  | 
 | ||||||
|   services.imapnotify.enable = true; |   services.imapnotify.enable = true; | ||||||
|   programs.mbsync.enable = true; |   programs.mbsync.enable = true; | ||||||
|   programs.msmtp.enable = true; |   programs.msmtp.enable = true; | ||||||
|  | @ -23,6 +57,7 @@ | ||||||
|     image/png; feh %s |     image/png; feh %s | ||||||
|     image/jpeg; feh %s |     image/jpeg; feh %s | ||||||
|   ''; |   ''; | ||||||
|  | 
 | ||||||
|   programs.neomutt = { |   programs.neomutt = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     extraConfig = '' |     extraConfig = '' | ||||||
|  | @ -31,9 +66,9 @@ | ||||||
|       set editor = "nvim +':set textwidth=0'" |       set editor = "nvim +':set textwidth=0'" | ||||||
| 
 | 
 | ||||||
|       #set virtual_spoolfile=yes |       #set virtual_spoolfile=yes | ||||||
|       set folder="~/Mail/anish" |       set folder="~/Maildir/anish" | ||||||
|       set mbox_type = Maildir |       set mbox_type = Maildir | ||||||
|       mailboxes `find ~/Mail/anish/* -maxdepth 0 -type d | grep -v "Trash\|Spam\|tmp\|new\|cur" | sed 's|/home/anish/Mail/anish|=\"|g' | sed 's|$|\"|g' | tr '\n' ' '` |       mailboxes `find ~/Maildir/anish/* -maxdepth 0 -type d | grep -v "Trash\|Spam\|tmp\|new\|cur" | sed 's|/home/anish/Maildir/anish|=\"|g' | sed 's|$|\"|g' | tr '\n' ' '` | ||||||
|              |              | ||||||
|       ## Folder with emails |       ## Folder with emails | ||||||
|       #set folder = "~/Mail/anish" |       #set folder = "~/Mail/anish" | ||||||
|  | @ -269,14 +304,10 @@ | ||||||
|         extraConfig.local.subFolders = "Verbatim"; |         extraConfig.local.subFolders = "Verbatim"; | ||||||
|       }; |       }; | ||||||
|       imapnotify = { |       imapnotify = { | ||||||
|         enable = true; |         enable = false; | ||||||
|         boxes = [ "Inbox" ]; |         boxes = [ "Inbox" ]; | ||||||
|         onNotify = "${pkgs.isync}/bin/mbsync anish && ${pkgs.notmuch}/bin/notmuch index"; |         onNotify = "${pkgs.isync}/bin/mbsync anish && ${pkgs.notmuch}/bin/notmuch index"; | ||||||
|         onNotifyPost = { |         onNotifyPost = "${pkgs.libnotify}/bin/notify-send -a mail 'email: new in %s'"; | ||||||
|           mail = "${pkgs.libnotify}/bin/notify-send -a mail 'email: new in %s'"; |  | ||||||
|           #update = "${pkgs.libnotify}/bin/notify-send -a mail 'email: update %s'"; |  | ||||||
|           #expunge = "${pkgs.libnotify}/bin/notify-send -a mail 'email: expunge %s'"; |  | ||||||
|         }; |  | ||||||
|       }; |       }; | ||||||
|       msmtp.enable = true; |       msmtp.enable = true; | ||||||
|       msmtp.extraConfig = { |       msmtp.extraConfig = { | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								home/profiles/email/imapnotify-anish-config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								home/profiles/email/imapnotify-anish-config.json
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | {"boxes":["Inbox"],"host":"imap.fastmail.com","onNewMail":"/nix/store/pmvvqwrsyv6ah0x8c82hgkddas5f9ajb-isync-1.4.4/bin/mbsync anish && /nix/store/wyi8a02kk3vh5y7qhdkfzyibb1yl0xc1-notmuch-0.37/bin/notmuch index","onNewMailPost":{"mail":"/nix/store/q360zpybna4djr4kjhjg6hmkk3vj7pjf-libnotify-0.8.1/bin/notify-send -a mail 'email: new in %s'"},"passwordCmd":"'/nix/store/a7gvj343m05j2s32xcnwr35v31ynlypr-coreutils-9.1/bin/cat' '/run/agenix/fastmail'","port":993,"tls":true,"username":"anish@lakhwara.com"} | ||||||
|  | @ -14,6 +14,9 @@ in | ||||||
|   "mossnet.age".publicKeys = allUserKeys; |   "mossnet.age".publicKeys = allUserKeys; | ||||||
|   "curve-wg.age".publicKeys = curve; |   "curve-wg.age".publicKeys = curve; | ||||||
|   "box-wg.age".publicKeys = [ mossnet ]; |   "box-wg.age".publicKeys = [ mossnet ]; | ||||||
|  |   "wallabag-password.age".publicKeys = [ mossnet ]; | ||||||
|  |   "wallabag-secret.age".publicKeys = [ mossnet ]; | ||||||
|  | 
 | ||||||
|   "borg-password.age".publicKeys = systemOnly; |   "borg-password.age".publicKeys = systemOnly; | ||||||
|   "freshrss-dbpass.age".publicKeys = [ helix ]; |   "freshrss-dbpass.age".publicKeys = [ helix ]; | ||||||
|   "synapse-config.age".publicKeys = [ lituus ]; |   "synapse-config.age".publicKeys = [ lituus ]; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue