310 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Nix
		
	
	
	
			
		
		
	
	
			310 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Nix
		
	
	
	
{ config, pkgs, ... }:
 | 
						|
 | 
						|
{
 | 
						|
    home.file = {
 | 
						|
        ".mailcap".text =
 | 
						|
            "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput";
 | 
						|
    };
 | 
						|
    home.packages = with pkgs; [ mailcap ];
 | 
						|
 | 
						|
    programs.notmuch = {
 | 
						|
        enable = true;
 | 
						|
        extraConfig = {
 | 
						|
            database = { path = "/home/server/Storage/Thomas/Mail"; };
 | 
						|
            user = {
 | 
						|
                name = "Thomas Avé";
 | 
						|
                primary_email = "email@thomasave.be";
 | 
						|
                other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;";
 | 
						|
            };
 | 
						|
            maildir = { synchronize_flags = "true"; };
 | 
						|
        };
 | 
						|
    };
 | 
						|
    programs.aerc = {
 | 
						|
        enable = true;
 | 
						|
        extraBinds = {
 | 
						|
            global = {
 | 
						|
                "<C-p>" = ":menu -adc 'fzy -l 30' :cf -a<Enter>";
 | 
						|
                "<tab>" = ":next-tab<Enter>";
 | 
						|
                "?" = ":help keys<Enter>";
 | 
						|
                "<F5>" = ":check-mail<Enter>";
 | 
						|
            };
 | 
						|
            messages = {
 | 
						|
                "q" = ":q<Enter>";
 | 
						|
                "<Backspace>" = ":q<Enter>";
 | 
						|
                "j" = ":next<Enter>";
 | 
						|
                "k" = ":prev<Enter>";
 | 
						|
                "<Up>" = ":prev<Enter>";
 | 
						|
                "g" = ":select 0<Enter>";
 | 
						|
                "G" = ":select -1<Enter>";
 | 
						|
                "J" = ":next-folder<Enter>";
 | 
						|
                "K" = ":prev-folder<Enter>";
 | 
						|
                "v" = ":mark -t<Enter>";
 | 
						|
                "V" = ":mark -v<Enter>";
 | 
						|
                "<Space>" = ":read -t<Enter>";
 | 
						|
                "T" = ":toggle-threads<Enter>";
 | 
						|
                "<Enter>" = ":view<Enter>";
 | 
						|
                "d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
 | 
						|
                "D" = ":delete<Enter>";
 | 
						|
                "a" = ":archive flat<Enter>";
 | 
						|
                "A" = ":unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>";
 | 
						|
                "f" = ":flag -t<Enter>";
 | 
						|
                "m" = ":compose<Enter>";
 | 
						|
                "rr" = ":reply -a<Enter>";
 | 
						|
                "rq" = ":reply -aq<Enter>";
 | 
						|
                "Rr" = ":reply<Enter>";
 | 
						|
                "Rq" = ":reply -q<Enter>";
 | 
						|
                "c" = ":cf<space>";
 | 
						|
                "$" = ":term<space>";
 | 
						|
                "!" = ":term<space>";
 | 
						|
                "|" = ":pipe<space>";
 | 
						|
                "/" = ":search -a<space>";
 | 
						|
                "\\" = ":filter -a <space>";
 | 
						|
                "n" = ":next-result<Enter>";
 | 
						|
                "N" = ":prev-result<Enter>";
 | 
						|
                "<Esc>" = ":clear<Enter>";
 | 
						|
                "s" = ":split<Enter>";
 | 
						|
                "S" = ":vsplit<Enter>";
 | 
						|
                "pl" = ":patch list<Enter>";
 | 
						|
                "pa" = ":patch apply <Tab>";
 | 
						|
                "pd" = ":patch drop <Tab>";
 | 
						|
                "pb" = ":patch rebase<Enter>";
 | 
						|
                "pt" = ":patch term<Enter>";
 | 
						|
                "ps" = ":patch switch <Tab>";
 | 
						|
            };
 | 
						|
            view = {
 | 
						|
                "/" = ":toggle-key-passthrough<Enter>/";
 | 
						|
                "q" = ":close<Enter>";
 | 
						|
                "O" = ":open<Enter>";
 | 
						|
                "o" = ":open<Enter>";
 | 
						|
                "S" = ":save<space>";
 | 
						|
                "|" = ":pipe<space>";
 | 
						|
                "D" = ":delete<Enter>";
 | 
						|
                "A" = ":archive flat<Enter>";
 | 
						|
                "<C-l>" = ":open-link <space>";
 | 
						|
                "f" = ":flag -t<Enter>";
 | 
						|
                "rr" = ":reply -a<Enter>";
 | 
						|
                "rq" = ":reply -aq<Enter>";
 | 
						|
                "Rr" = ":reply<Enter>";
 | 
						|
                "Rq" = ":reply -q<Enter>";
 | 
						|
                "H" = ":toggle-headers<Enter>";
 | 
						|
                "<C-k>" = ":prev-part<Enter>";
 | 
						|
                "<C-Up>" = ":prev-part<Enter>";
 | 
						|
                "<C-j>" = ":next-part<Enter>";
 | 
						|
                "<C-Down>" = ":next-part<Enter>";
 | 
						|
                "J" = ":next<Enter>";
 | 
						|
                "<C-Right>" = ":next<Enter>";
 | 
						|
                "K" = ":prev<Enter>";
 | 
						|
                "<C-Left>" = ":prev<Enter>";
 | 
						|
            };
 | 
						|
            "view::passthrough" = {
 | 
						|
                "$noinherit" = "true";
 | 
						|
                "$ex" = "<C-x>";
 | 
						|
                "<Esc>" = ":toggle-key-passthrough<Enter>";
 | 
						|
            };
 | 
						|
            compose = {
 | 
						|
                "$noinherit" = "true";
 | 
						|
                "$ex" = "<C-x>";
 | 
						|
                "$complete" = "<C-o>";
 | 
						|
                "<C-k>" = ":prev-field<Enter>";
 | 
						|
                "<C-Up>" = ":prev-field<Enter>";
 | 
						|
                "<C-j>" = ":next-field<Enter>";
 | 
						|
                "<C-Down>" = ":next-field<Enter>";
 | 
						|
                "<A-p>" = ":switch-account -p<Enter>";
 | 
						|
                "<C-Left>" = ":switch-account -p<Enter>";
 | 
						|
                "<A-n>" = ":switch-account -n<Enter>";
 | 
						|
                "<C-Right>" = ":switch-account -n<Enter>";
 | 
						|
                "<tab>" = ":next-field<Enter>";
 | 
						|
                "<backtab>" = ":prev-field<Enter>";
 | 
						|
                "<C-p>" = ":prev-tab<Enter>";
 | 
						|
                "<C-PgUp>" = ":prev-tab<Enter>";
 | 
						|
                "<C-n>" = ":next-tab<Enter>";
 | 
						|
                "<C-PgDn>" = ":next-tab<Enter>";
 | 
						|
            };
 | 
						|
            "compose::editor" = {
 | 
						|
                "$noinherit" = "true";
 | 
						|
                "$ex" = "<C-x>";
 | 
						|
                "<C-k>" = ":prev-field<Enter>";
 | 
						|
                "<C-Up>" = ":prev-field<Enter>";
 | 
						|
                "<C-j>" = ":next-field<Enter>";
 | 
						|
                "<C-Down>" = ":next-field<Enter>";
 | 
						|
                "<C-p>" = ":prev-tab<Enter>";
 | 
						|
                "<C-PgUp>" = ":prev-tab<Enter>";
 | 
						|
                "<C-n>" = ":next-tab<Enter>";
 | 
						|
                "<C-PgDn>" = ":next-tab<Enter>";
 | 
						|
            };
 | 
						|
            "compose::review" = {
 | 
						|
                "y" = ":send<Enter>";
 | 
						|
                "n" = ":abort<Enter>";
 | 
						|
                "v" = ":preview<Enter>";
 | 
						|
                "p" = ":postpone<Enter>";
 | 
						|
                "q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
 | 
						|
                "e" = ":edit<Enter>";
 | 
						|
                "a" = ":attach<space>";
 | 
						|
                "d" = ":detach<space>";
 | 
						|
            };
 | 
						|
            terminal = {
 | 
						|
                "$noinherit" = "true";
 | 
						|
                "$ex" = "<C-x>";
 | 
						|
                "<C-p>" = ":prev-tab<Enter>";
 | 
						|
                "<C-n>" = ":next-tab<Enter>";
 | 
						|
                "<C-PgUp>" = ":prev-tab<Enter>";
 | 
						|
                "<C-PgDn>" = ":next-tab<Enter>";
 | 
						|
            };
 | 
						|
        };
 | 
						|
        templates = {
 | 
						|
            quoted_reply = ''
 | 
						|
          {{(index .OriginalFrom 0).Name}}, {{dateFormat (.OriginalDate | toLocal) "Jan 02, 2006 at 15:04"}}:
 | 
						|
          {{ if eq .OriginalMIMEType "text/html" -}}
 | 
						|
          {{- exec `${pkgs.w3m}/bin/w3m -dump -o display_link_number=1 -T text/html` .OriginalText | quote -}}
 | 
						|
          {{- else -}}
 | 
						|
          {{- .OriginalText | quote -}}
 | 
						|
          {{- end}}
 | 
						|
            '';
 | 
						|
        };
 | 
						|
        extraConfig = {
 | 
						|
            general = {
 | 
						|
                term = "xterm-256color";
 | 
						|
                unsafe-accounts-conf = true;
 | 
						|
            };
 | 
						|
            ui = {
 | 
						|
                border-char-vertical = "│";
 | 
						|
                border-char-horizontal = "─";
 | 
						|
                styleset-name = "catppuccin-mocha";
 | 
						|
                timestamp-format = "2006-01-02 15:04";
 | 
						|
                sidebar-width = 30;
 | 
						|
                mouse-enabled = true;
 | 
						|
                dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}";
 | 
						|
                dirlist-tree = true;
 | 
						|
            };
 | 
						|
            viewer = {
 | 
						|
                pager =
 | 
						|
                    "${pkgs.neovim}/bin/nvim -u ${config.xdg.configHome}/nvim/aerc.lua";
 | 
						|
            };
 | 
						|
            compose = { address-book-cmd = ''notmuch address "%s"''; };
 | 
						|
            multipart-converters = {
 | 
						|
                "text/html" =
 | 
						|
                    "${pkgs.w3m}/bin/w3m -dump -o display_link_number=1 -T text/html";
 | 
						|
            };
 | 
						|
            filters = {
 | 
						|
                "text/plain" = "cat";
 | 
						|
                "text/calendar" = "${pkgs.gnome-calendar}/bin/gnome-calendar";
 | 
						|
                "message/delivery-status" = "cat";
 | 
						|
                "message/rfc822" = "cat";
 | 
						|
                "text/html" = "${pkgs.w3m}/bin/w3m -dump -o display_link_number=1 -T text/html";
 | 
						|
                "application/x-sh" = "${pkgs.bat}/bin/bat -fP -l sh";
 | 
						|
            };
 | 
						|
        };
 | 
						|
        extraAccounts = {
 | 
						|
            Zoho = {
 | 
						|
                outgoing = "smtps://email%40thomasave.be@smtp.zoho.com";
 | 
						|
                outgoing-cred-cmd = "cat ~/.secrets/Aerc/Zoho.key";
 | 
						|
                source =
 | 
						|
                    "maildir:///home/server/Storage/Thomas/Mail/email@thomasave.be/";
 | 
						|
                check-mail-cmd =
 | 
						|
                    "ssh server@10.1 /home/server/Containers/mbsync/sync.sh";
 | 
						|
                check-mail-timeout = "60s";
 | 
						|
                default = "Inbox";
 | 
						|
                from = ''"Thomas Avé" <email@thomasave.be>'';
 | 
						|
                cache-headers = true;
 | 
						|
            };
 | 
						|
            UAntwerpen = {
 | 
						|
                outgoing =
 | 
						|
                    "ssh server@192.168.1.2 /home/server/Containers/mbsync/send.sh";
 | 
						|
                source =
 | 
						|
                    "maildir:///home/server/Storage/Thomas/Mail/Thomas.Ave@uantwerpen.be";
 | 
						|
                check-mail-cmd =
 | 
						|
                    "ssh server@10.1 /home/server/Containers/mbsync/sync.sh";
 | 
						|
                check-mail-timeout = "60s";
 | 
						|
                default = "Inbox";
 | 
						|
                from = ''"Thomas Avé" <Thomas.Ave@uantwerpen.be>'';
 | 
						|
                cache-headers = true;
 | 
						|
            };
 | 
						|
            IMEC = {
 | 
						|
                outgoing = "smtp+insecure://ave57%40imec.be@smtp.thomasave.be:1025";
 | 
						|
                outgoing-cred-cmd = "cat ~/.secrets/Aerc/IMEC.key";
 | 
						|
                source =
 | 
						|
                    "maildir:///home/server/Storage/Thomas/Mail/Thomas.Ave@imec.be/";
 | 
						|
                check-mail-cmd =
 | 
						|
                    "ssh server@10.1 /home/server/Containers/mbsync/sync.sh";
 | 
						|
                check-mail-timeout = "60s";
 | 
						|
                default = "Inbox";
 | 
						|
                from = ''"Thomas Avé" <Thomas.Ave@imec.be>'';
 | 
						|
                cache-headers = true;
 | 
						|
            };
 | 
						|
            NotMuch = {
 | 
						|
                source = "notmuch:///home/server/Storage/Thomas/Mail/";
 | 
						|
                check-mail-cmd =
 | 
						|
                    "ssh server@10.1 /home/server/Containers/mbsync/sync.sh";
 | 
						|
                check-mail-timeout = "60s";
 | 
						|
                from = ''"Thomas Avé" <Thomas.Ave@uantwerpen.be>'';
 | 
						|
                query-map = "${config.xdg.configHome}/aerc/map.conf";
 | 
						|
                default = "INBOX";
 | 
						|
                cache-headers = true;
 | 
						|
            };
 | 
						|
        };
 | 
						|
    };
 | 
						|
 | 
						|
    home.file."${config.xdg.configHome}/aerc/map.conf".text =
 | 
						|
        "Inbox=tag:inbox and not tag:archived and not tag:deleted";
 | 
						|
    home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = ''
 | 
						|
    *.default=true
 | 
						|
    *.normal=true
 | 
						|
 | 
						|
    default.fg=#abb2bf
 | 
						|
    default.bg=#11121D
 | 
						|
    *.bg=#11121D
 | 
						|
 | 
						|
    error.fg=#f38ba8
 | 
						|
    warning.fg=#fab387
 | 
						|
    success.fg=#a6e3a1
 | 
						|
 | 
						|
    tab.fg=#6c7086
 | 
						|
    tab.bg=#181825
 | 
						|
    tab.selected.fg=#cdd6f4
 | 
						|
    tab.selected.bg=#023269
 | 
						|
    tab.selected.bold=true
 | 
						|
 | 
						|
    part*.selected.bg=#023269
 | 
						|
 | 
						|
    border.fg=#023269
 | 
						|
    border.bold=true
 | 
						|
 | 
						|
    msglist_unread.bold=true
 | 
						|
    msglist_unread.fg=#f9e2af
 | 
						|
    msglist_flagged.fg=#e06c75
 | 
						|
 | 
						|
    msglist_flagged.bold=true
 | 
						|
    msglist_result.fg=#89b4fa
 | 
						|
    msglist_result.bold=true
 | 
						|
    msglist_*.selected.bold=true
 | 
						|
    msglist_*.selected.bg=#023269
 | 
						|
    msglist_*.bg=#11121D
 | 
						|
 | 
						|
    dirlist_*.selected.bold=true
 | 
						|
    dirlist_*.selected.bg=#023269
 | 
						|
    dirlist_*.bg=#181825
 | 
						|
 | 
						|
    statusline_default.fg=#9399b2
 | 
						|
    statusline_default.bg=#2C3043
 | 
						|
    statusline_error.bold=true
 | 
						|
    statusline_success.bold=true
 | 
						|
 | 
						|
    spinner.bg=#11121D
 | 
						|
 | 
						|
    [viewer]
 | 
						|
    header.bg=#181825
 | 
						|
    url.fg=#89b4fa
 | 
						|
    url.underline=true
 | 
						|
    header.bold=true
 | 
						|
    signature.dim=true
 | 
						|
    diff_meta.bold=true
 | 
						|
    diff_chunk.fg=#89b4fa
 | 
						|
    diff_chunk_func.fg=#89b4fa
 | 
						|
    diff_chunk_func.bold=true
 | 
						|
    diff_add.fg=#a6e3a1
 | 
						|
    diff_del.fg=#f38ba8
 | 
						|
    quote_*.fg=#6c7086
 | 
						|
    quote_1.fg=#9399b2
 | 
						|
    '';
 | 
						|
}
 |