diff options
Diffstat (limited to 'lass/2configs/mail.nix')
-rw-r--r-- | lass/2configs/mail.nix | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/lass/2configs/mail.nix b/lass/2configs/mail.nix deleted file mode 100644 index bf8904b89..000000000 --- a/lass/2configs/mail.nix +++ /dev/null @@ -1,272 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - - msmtprc = pkgs.writeText "msmtprc" '' - defaults - logfile ~/.msmtp.log - account prism - host prism.r - account c-base - from lassulus@c-base.org - host c-mail.c-base.org - port 465 - tls on - tls_starttls off - auth on - user lassulus - passwordeval pass show c-base/pass - account default: prism - ''; - - notmuch-config = pkgs.writeText "notmuch-config" '' - [database] - path=/home/lass/Maildir - mail_root=/home/lass/Maildir - - [user] - name=lassulus - primary_email=lassulus@lassul.us - other_email=lass@mors.r;${lib.concatStringsSep ";" (lib.flatten (lib.attrValues mailboxes))} - - [new] - tags=unread;inbox; - ignore= - - [search] - exclude_tags=deleted;spam; - - [maildir] - synchronize_flags=true - ''; - - msmtp = pkgs.writeBashBin "msmtp" '' - ${pkgs.coreutils}/bin/tee >(${pkgs.notmuch}/bin/notmuch insert +sent) | \ - ${pkgs.msmtp}/bin/msmtp -C ${msmtprc} "$@" - ''; - - mailcap = pkgs.writeText "mailcap" '' - text/html; ${pkgs.elinks}/bin/elinks -dump ; copiousoutput; - ''; - - mailboxes = { - afra = [ "to:afra@afra-berlin.de" ]; - c-base = [ "to:c-base.org" ]; - coins = [ - "to:btce@lassul.us" - "to:coinbase@lassul.us" - "to:polo@lassul.us" - "to:bitwala@lassul.us" - "to:payeer@lassul.us" - "to:gatehub@lassul.us" - "to:bitfinex@lassul.us" - "to:binance@lassul.us" - "to:bitcoin.de@lassul.us" - "to:robinhood@lassul.us" - ]; - dezentrale = [ "to:dezentrale.space" ]; - dhl = [ "to:dhl@lassul.us" ]; - dn42 = [ "to:dn42@lists.nox.tf" ]; - eloop = [ "to:eloop.org" ]; - github = [ "to:github@lassul.us" ]; - gmail = [ "to:gmail@lassul.us" "to:lassulus@gmail.com" "lassulus@googlemail.com" ]; - india = [ "to:hillhackers@lists.hillhacks.in" "to:hackbeach@lists.hackbeach.in" "to:hackbeach@mail.hackbeach.in" ]; - kaosstuff = [ "to:gearbest@lassul.us" "to:banggood@lassul.us" "to:tomtop@lassul.us" ]; - lugs = [ "to:lugs@lug-s.org" ]; - meetup = [ "to:meetup@lassul.us" ]; - nix = [ "to:nix-devel@googlegroups.com" "to:nix@lassul.us" ]; - patreon = [ "to:patreon@lassul.us" ]; - paypal = [ "to:paypal@lassul.us" ]; - ptl = [ "to:ptl@posttenebraslab.ch" ]; - retiolum = [ "to:lass@mors.r" ]; - security = [ - "to:seclists.org" "to:bugtraq" "to:securityfocus@lassul.us" - "to:security-announce@lists.apple.com" - ]; - shack = [ "to:shackspace.de" ]; - steam = [ "to:steam@lassul.us" ]; - tinc = [ "to:tinc@tinc-vpn.org" "to:tinc-devel@tinc-vpn.org" ]; - wireguard = [ "to:wireguard@lists.zx2c4" ]; - zzz = [ "to:pizza@lassul.us" "to:spam@krebsco.de" ]; - }; - - tag-new-mails = pkgs.writeDashBin "nm-tag-init" '' - ${pkgs.notmuch}/bin/notmuch new - ${lib.concatMapStringsSep "\n" (i: '' - mkdir -p "$HOME/Maildir/.${i.name}/cur" - for mail in $(${pkgs.notmuch}/bin/notmuch search --output=files 'tag:inbox and (${lib.concatMapStringsSep " or " (f: "${f}") i.value})'); do - if test -e "$mail"; then - mv "$mail" "$HOME/Maildir/.${i.name}/cur/" - else - echo "$mail does not exist" - fi - done - ${pkgs.notmuch}/bin/notmuch tag -inbox +${i.name} -- tag:inbox ${lib.concatMapStringsSep " or " (f: "${f}") i.value} - '') (lib.mapAttrsToList lib.nameValuePair mailboxes)} - ${pkgs.notmuch}/bin/notmuch new - ${pkgs.notmuch}/bin/notmuch dump > "$HOME/Maildir/notmuch.backup" - ''; - - tag-old-mails = pkgs.writeDashBin "nm-tag-old" '' - set -efux - ${lib.concatMapStringsSep "\n" (i: '' - ${pkgs.notmuch}/bin/notmuch tag -inbox -archive +${i.name} -- ${lib.concatMapStringsSep " or " (f: "${f}") i.value} - mkdir -p "$HOME/Maildir/.${i.name}/cur" - for mail in $(${pkgs.notmuch}/bin/notmuch search --output=files ${lib.concatMapStringsSep " or " (f: "${f}") i.value}); do - if test -e "$mail"; then - mv "$mail" "$HOME/Maildir/.${i.name}/cur/" - else - echo "$mail does not exist" - fi - done - '') (lib.mapAttrsToList lib.nameValuePair mailboxes)} - ${pkgs.notmuch}/bin/notmuch new --no-hooks - ''; - - muttrc = pkgs.writeText "muttrc" '' - - # read html mails - auto_view text/html - set mailcap_path = ${mailcap} - - # notmuch - set folder="$HOME/Maildir" - set nm_default_uri = "notmuch://$HOME/Maildir" - set nm_record = yes - set nm_record_tags = "-inbox me archive" - set spoolfile = +Inbox - set virtual_spoolfile = yes - - - set sendmail="${msmtp}/bin/msmtp" # enables parsing of outgoing mail - set from="lassulus@lassul.us" - alternates ^.*@lassul\.us$ ^.*@.*\.r$ - unset envelope_from_address - set use_envelope_from - set reverse_name - - set sort=threads - - set index_format="%4C %Z %?GI?%GI& ? %[%y-%m-%d] %-20.20a %?M?(%3M)& ? %s %> %r %g" - - virtual-mailboxes "Unread" "notmuch://?query=tag:unread" - virtual-mailboxes "INBOX" "notmuch://?query=tag:inbox" - ${lib.concatMapStringsSep "\n" (i: ''${" "}virtual-mailboxes "${i.name}" "notmuch://?query=tag:${i.name}"'') (lib.mapAttrsToList lib.nameValuePair mailboxes)} - virtual-mailboxes "TODO" "notmuch://?query=tag:TODO" - virtual-mailboxes "Starred" "notmuch://?query=tag:*" - virtual-mailboxes "Archive" "notmuch://?query=tag:archive" - virtual-mailboxes "Sent" "notmuch://?query=tag:sent" - virtual-mailboxes "Junk" "notmuch://?query=tag:junk" - virtual-mailboxes "All" "notmuch://?query=*" - - tag-transforms "junk" "k" \ - "unread" "u" \ - "replied" "↻" \ - "TODO" "T" \ - - # notmuch bindings - macro index \\\\ "<vfolder-from-query>" # looks up a hand made query - macro index + "<modify-labels>+*\n<sync-mailbox>" # tag as starred - macro index - "<modify-labels>-*\n<sync-mailbox>" # tag as unstarred - - # muchsync - bind index \Cr noop - macro index \Cr \ - "<enter-command>unset wait_key<enter> \ - <shell-escape>${pkgs.writeDash "muchsync" '' - set -efu - until ${pkgs.muchsync}/bin/muchsync -F lass@green.r; do - sleep 1 - done - ''}<enter> - - #killed - bind index d noop - bind pager d noop - - bind index S noop - bind index s noop - bind pager S noop - bind pager s noop - macro index S "<modify-labels-then-hide>-inbox -unread +junk\n" # tag as Junk mail - macro index s "<modify-labels>-junk\n" # tag as Junk mail - macro pager S "<modify-labels-then-hide>-inbox -unread +junk\n" # tag as Junk mail - macro pager s "<modify-labels>-junk\n" # tag as Junk mail - - - bind index A noop - bind index a noop - bind pager A noop - bind pager a noop - macro index A "<modify-labels>+archive -unread -inbox\n" # tag as Archived - macro index a "<modify-labels>-archive\n" # tag as Archived - macro pager A "<modify-labels>+archive -unread -inbox\n" # tag as Archived - macro pager a "<modify-labels>-archive\n" # tag as Archived - - - bind index U noop - bind index u noop - bind pager U noop - bind pager u noop - macro index U "<modify-labels>+unread\n" - macro index u "<modify-labels>-unread\n" - macro pager U "<modify-labels>+unread\n" - macro pager u "<modify-labels>-unread\n" - - - bind index t noop - bind pager t noop - macro index t "<modify-labels>" # tag as Archived - - # top index bar in email view - set pager_index_lines=7 - # top_index_bar toggle - macro pager ,@1 "<enter-command> set pager_index_lines=0; macro pager ] ,@2 'Toggle indexbar<Enter>" - macro pager ,@2 "<enter-command> set pager_index_lines=3; macro pager ] ,@3 'Toggle indexbar<Enter>" - macro pager ,@3 "<enter-command> set pager_index_lines=7; macro pager ] ,@1 'Toggle indexbar<Enter>" - macro pager ] ,@1 'Toggle indexbar - - # urlview - macro pager \cb <pipe-entry>'${pkgs.urlview}/bin/urlview'<enter> 'Follow links with urlview' - - # sidebar - set sidebar_divider_char = '│' - set sidebar_delim_chars = "/" - set sidebar_short_path - set sidebar_folder_indent - set sidebar_visible = yes - set sidebar_format = '%D%?F? [%F]?%* %?N?%N/? %?S?%S?' - set sidebar_width = 20 - color sidebar_new yellow red - - # sidebar bindings - bind index <left> sidebar-prev # got to previous folder in sidebar - bind index <right> sidebar-next # got to next folder in sidebar - bind index <space> sidebar-open # open selected folder from sidebar - # sidebar toggle - macro index,pager ,@) "<enter-command> set sidebar_visible=no; macro index,pager [ ,@( 'Toggle sidebar'<Enter>" - macro index,pager ,@( "<enter-command> set sidebar_visible=yes; macro index,pager [ ,@) 'Toggle sidebar'<Enter>" - macro index,pager [ ,@( 'Toggle sidebar' # toggle the sidebar - ''; - - mutt = pkgs.symlinkJoin { - name = "mutt"; - paths = [ - (pkgs.writeDashBin "mutt" '' - exec ${pkgs.neomutt}/bin/neomutt -F ${muttrc} "$@" - '') - pkgs.neomutt - ]; - }; - -in { - environment.variables.NOTMUCH_CONFIG = toString notmuch-config; - environment.systemPackages = [ - msmtp - mutt - pkgs.notmuch - pkgs.muchsync - tag-new-mails - tag-old-mails - ]; -} |