Once is enough! <grfn> https://tazj.in/blobs/touch-garbage.jpg Change-Id: I68f66669e82d35a71752638450fa4b820e137172 Signed-Off-By: Florian Klink <flokli@flokli.de> Reviewed-on: https://cl.tvl.fyi/c/depot/+/3048 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib, pkgs, config, ... }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
let
 | 
						|
 | 
						|
  # from home-manager/modules/services/lieer.nix
 | 
						|
  escapeUnitName = name:
 | 
						|
    let
 | 
						|
      good = upperChars ++ lowerChars ++ stringToCharacters "0123456789-_";
 | 
						|
      subst = c: if any (x: x == c) good then c else "-";
 | 
						|
    in stringAsChars subst name;
 | 
						|
 | 
						|
  accounts = {
 | 
						|
    personal = {
 | 
						|
      primary = true;
 | 
						|
      address = "root@gws.fyi";
 | 
						|
      aliases = [ "grfn@gws.fyi" ];
 | 
						|
      passEntry = "root-gws-msmtp";
 | 
						|
    };
 | 
						|
 | 
						|
    work = {
 | 
						|
      address = "griffin@readyset.io";
 | 
						|
      passEntry = "readyset/msmtp";
 | 
						|
    };
 | 
						|
 | 
						|
  };
 | 
						|
 | 
						|
in {
 | 
						|
  programs.lieer.enable = true;
 | 
						|
  programs.notmuch.enable = true;
 | 
						|
  services.lieer.enable = true;
 | 
						|
  programs.msmtp.enable = true;
 | 
						|
 | 
						|
  home.packages = with pkgs; [
 | 
						|
    mu
 | 
						|
    msmtp
 | 
						|
  ];
 | 
						|
 | 
						|
  systemd.user.services = mapAttrs' (name: account: {
 | 
						|
    name = escapeUnitName "lieer-${name}";
 | 
						|
    value.Service = {
 | 
						|
      ExecStart = mkForce "${pkgs.writeShellScript "sync-${name}" ''
 | 
						|
        ${pkgs.gmailieer}/bin/gmi sync --path ~/mail/${name}
 | 
						|
      ''}";
 | 
						|
      Environment = "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
 | 
						|
    };
 | 
						|
 | 
						|
  }) accounts;
 | 
						|
 | 
						|
  # xdg.configFile."notifymuch/notifymuch.cfg".text = generators.toINI {} {
 | 
						|
  #   notifymuch = {
 | 
						|
  #     query = "is:unread and is:important";
 | 
						|
  #     mail_client = "";
 | 
						|
  #     recency_interval_hours = "48";
 | 
						|
  #     hidden_tags = "inbox unread attachment replied sent encrypted signed";
 | 
						|
  #   };
 | 
						|
  # };
 | 
						|
 | 
						|
  accounts.email.maildirBasePath = "mail";
 | 
						|
  accounts.email.accounts = mapAttrs (_: params@{ passEntry, ... }: {
 | 
						|
    realName = "Griffin Smith";
 | 
						|
    passwordCommand = "pass ${passEntry}";
 | 
						|
 | 
						|
    flavor = "gmail.com";
 | 
						|
 | 
						|
    imapnotify = {
 | 
						|
      enable = true;
 | 
						|
      boxes = [ "Inbox" ];
 | 
						|
    };
 | 
						|
 | 
						|
    gpg = {
 | 
						|
      key = "0F11A989879E8BBBFDC1E23644EF5B5E861C09A7";
 | 
						|
      signByDefault = true;
 | 
						|
    };
 | 
						|
 | 
						|
    notmuch.enable = true;
 | 
						|
    lieer = {
 | 
						|
      enable = true;
 | 
						|
      sync = {
 | 
						|
        enable = true;
 | 
						|
        frequency = "*:*";
 | 
						|
      };
 | 
						|
    };
 | 
						|
    msmtp.enable = true;
 | 
						|
  } // builtins.removeAttrs params ["passEntry"]) accounts;
 | 
						|
}
 |