summaryrefslogtreecommitdiffstats
path: root/lass/2configs/mail.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2023-09-09 19:42:08 +0200
committermakefu <github@syntax-fehler.de>2023-09-09 19:42:08 +0200
commit29d72c898d674d2c18fc0f4a76b5e623de0c3dfe (patch)
treefc4b0695c986a1cda6f1fbbbcbe716e203c54fa3 /lass/2configs/mail.nix
parente157ffa72856e4378aa23b096b2efff233f3cb3d (diff)
parent083229d0211096daec08673f743ccc45b1d8a0ac (diff)
Merge remote-tracking branch 'lass/master'
Diffstat (limited to 'lass/2configs/mail.nix')
-rw-r--r--lass/2configs/mail.nix272
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
- ];
-}