This commit is contained in:
Till 2023-05-22 03:16:52 +02:00
parent 3362d139c4
commit e374b0b693
7 changed files with 305 additions and 77 deletions

View file

@ -81,7 +81,7 @@
./R.nix
./nvim
./fish.nix
./mail.nix
./mail
./tex.nix
./openconnect.nix
];

View file

@ -0,0 +1,93 @@
# Navigation
bind index,pager k previous-entry
bind index,pager j next-entry
bind index,pager \Cu half-up
bind index,pager \Cd half-down
bind pager gg top
bind index gg first-entry
bind pager G bottom
bind index G last-entry
bind index,pager N search-opposite
bind index <space> collapse-thread
bind index,pager gf change-folder
# Read HTML
bind index,pager V noop
macro index,pager V "<view-attachments><search>html<enter><view-mailcap><exit>"
# Sidebar navigation
# bind index,pager \Cj sidebar-next
# bind index,pager \Ck sidebar-prev
# bind index,pager \Cl sidebar-open
# bind index,pager gl sidebar-toggle-visible
# macro index,pager g8 "<pipe-message>less<return>" "Just testing"
# compose
bind compose p postpone-message
bind compose P pgp-menu
# macro compose I "<attach-file>`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > "$tmpfile" && echo "$tmpfile"`<enter>" "attach image from clipboard"
bind editor <Tab> complete-query
bind editor ^T complete
bind index,pager a group-reply
bind index,pager m noop
macro index,pager mar "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>" "Mark all read"
# compose with signature management
macro index,pager @ "<enter-command>set signature=$my_signature<enter><compose-to-sender>" "Compose to sender"
macro index,pager c "<enter-command>set signature=$my_signature<enter><mail>" "Compose new message"
macro index,pager r "<enter-command>unset signature<enter><reply>" "Reply to message"
macro index,pager a "<enter-command>unset signature<enter><group-reply>" "Reply all"
macro index,pager f "<enter-command>unset signature<enter><forward-message>" "Forward message"
# moving messages
macro index,pager J ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$my_junk<enter>" \
"Move to junk folder"
macro index,pager y ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$mbox<enter>" \
"Move message to the archive"
macro index,pager I "<save-message>$spoolfile<enter>" "Move message to the inbox"
# switch folders
# macro index,pager gi "<change-folder>$spoolfile<enter>" "Go to inbox"
macro index,pager g! "<change-folder>$spoolfile<enter><refresh>" "Go to inbox"
macro index,pager gd "<change-folder>$postponed<enter><refresh>" "Go to drafts"
# macro index,pager gs "<change-folder>$record<enter>" "Go to sent"
macro index,pager g< "<change-folder>$record<enter><refresh>" "Go to sent"
# macro index,pager ga "<change-folder>$mbox<enter>" "Go to archive"
macro index,pager g> "<change-folder>$mbox<enter><refresh>" "Go to archive"
macro index,pager gt "<change-folder>$trash<enter><refresh>" "Go to trash"
macro index,pager gj "<change-folder>$my_junk<enter><refresh>" "Go to junk"
# accounts
macro index,pager gu "<change-folder>+gu/IMAP/Inbox<enter><refresh>" "Go to GU"
macro index,pager gp "<change-folder>+systemli/IMAP/Inbox<enter><refresh>" "Go to Systemli"
macro index,pager gm "<change-folder>+gmail/IMAP/Inbox<enter><refresh>" "Go to Gmail"
macro index,pager gk "<change-folder>+ks/IMAP/Inbox<enter><refresh>" "Go to KS"
macro index,pager gi "<change-folder>+ktiu/IMAP/Inbox<enter><refresh>" "Go to ktiu"
macro index,pager gf "<change-folder>+dkg/IMAP/Inbox<enter><refresh>" "Go to DKG"
macro index,pager L "<limit>all\n" "Show all messages (undo limit)"
macro index,pager go "<shell-escape>mbsync -c ~/.config/mbsync/mbsyncrc $my_mbsync_acct && notmuch new<enter>" \
"Run mbsync to sync mail for this account"
macro index,pager g/ \
"<vfolder-from-query-readonly>" \
"mu find"
macro index,pager A \
"<pipe-message>khard add-email --vcard-version=4.0<return>" \
"add the sender email address to khard"
macro index,pager S \
"<pipe-message> ripmime -i - -d ~/tmp && rm ~/tmp/textfile*" \
"save all non-text attachments using ripmime"
macro index,pager gb \
"<pipe-message> urlscan<enter>" \
"extract URLs out of a message"
macro index,pager gO \
"<shell-escape>mbsync -ac ~/.config/mbsync/mbsyncrc && notmuch new<enter>" \
"run mbsync to sync all mail"

151
home/mail/config.neomuttrc Normal file
View file

@ -0,0 +1,151 @@
# set mailcap_path = ~/.config/neomutt/mailcap
# set tmpdir = ~/.local/share/neomutt/tmp
set alias_file = ~/.local/share/neomutt/aliases.neomuttrc
set my_download_folder = ~/tmp
set folder = ~/.local/share/mail/imap/
# Caching
set header_cache = ~/.local/share/neomutt/cache/headers
set message_cachedir = ~/.local/share/neomutt/cache/bodies
set header_cache_backend = "lmdb"
# Basic options
unset wait_key
set mbox_type = Maildir
# set delete
set mail_check_stats
unset confirm_append
unset beep
unset mark_old
set sleep_time = 0
# set shell = /bin/bash
# Sending
# set sendmail = "/home/till/.nix-profile/bin/sendmail -C /home/till/.config/msmtp/msmtprc"
set use_envelope_from
unset reverse_realname
# Searching
# set nm_default_url = "notmuch:///home/till/.local/share/neomutt/mail/"
# Multi-account setup
# source ~/.config/neomutt/accounts/dkg.neomuttrc
# source ~/.config/neomutt/accounts/gu.neomuttrc
# bind index,pager g noop
# folder-hook $folder/gu/ source ~/.config/neomutt/accounts/gu.neomuttrc
# folder-hook $folder/systemli/ source ~/.config/neomutt/accounts/systemli.neomuttrc
# folder-hook $folder/ks/ source ~/.config/neomutt/accounts/ks.neomuttrc
# folder-hook $folder/gmail/ source ~/.config/neomutt/accounts/gmail.neomuttrc
# folder-hook $folder/ktiu/ source ~/.config/neomutt/accounts/ktiu.neomuttrc
# folder-hook $folder/dkg/ source ~/.config/neomutt/accounts/dkg.neomuttrc
# folder-hook $folder/papa/ source ~/.config/neomutt/accounts/papa.neomuttrc
# folder-hook . source ~/.config/neomutt/bindings.neomuttrc
# # Source config
# source ~/.config/neomutt/views.neomuttrc
# source ~/.config/neomutt/sidebar.neomuttrc
# source ~/.config/neomutt/colors.neomuttrc
# source ~/.config/neomutt/smime.neomuttrc
# source ~/.config/neomutt/pgp.neomuttrc
source $alias_file
# Compose
set editor = "nvim -c 'call woof#init#Init()'"
set edit_headers
set forward_format = "Fwd: %s"
set forward_attachments
set fast_reply
set include
set forward_quote
unset recall
set resume_draft_files
set abort_noattach_regex = "(attach|enclosed|anbei|anhängen|angehängt|anhang|anhänge|hängt an)"
set abort_noattach = ask-yes
set mime_type_query_command = "file -b --mime-type %s"
set query_command= "khard email --parsable '%s'"
# Status bar
set status_chars = "✔↻٪A"
set status_format = "— [ %r ] %f (%lB) %>— %m messages%?n? [ %n new ]?%?d? [ %d to delete ]?%?t? [ %t tagged ]? —"
unset help
# Index
set index_format = "%-25.25F %<[y?%<[7d?%<[d?%[ %H:%M]&%[%a %H:%M]>&%[%d.%m. %Hh]>&%[%d.%m.%Y]> %Z %?X?▼ &?%s"
set strict_threads
set send_charset = "utf-8:iso-8859-1:us-ascii"
set charset = "utf-8"
# sorting
set sort = threads
set sort_aux = reverse-last-date-received
# Pager view
set pager_index_lines = 10
set pager_context = 3
set pager_stop
set smart_wrap
set menu_scroll
set tilde
unset markers
ignore *
unignore from: to: cc: bcc: date: subject:
unhdr_order *
hdr_order from: to: cc: bcc: date: subject:
alternative_order text/plain text/enriched text/html
auto_view text/html
# Attachments
set rfc2047_parameters
set attach_save_dir = $my_download_folder
## Indicator
color indicator brightwhite brightblack
## Index
color index_flags brightmagenta default '.*'
color index_date cyan default
## New mail
color index brightblack default '~N'
## Header colors
color header brightblack default ".*"
color header brightgreen default "^(Subject)"
color header yellow default "^(From|To|CC|BCC)"
color header blue default "^Date"
## Status
color status yellow default '\[ ↻ \]'
color status green default '\[ ✔ \]'
color status magenta default '\[ ٪ \]'
color status black default '\[ [0-9]+ new \]'
color status red default '\[ [0-9]+ to delete \]'
## Mutt
color message cyan default
color error red default
color tilde black default
## Pager
color normal default default
color attachment brightblack default
color search black yellow
color quoted green default
color quoted1 blue default
color quoted2 cyan default
color quoted3 yellow default
color quoted4 red default
color quoted5 brightred default
color signature cyan default
color underline black default
## Email
color body blue default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
color body blue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
color body red default "(BAD signature)"
color body green default "(Good signature)"
color body brightblack default "^gpg: .*"
color body green default "^gpg: Good signature .*"
color body red default "^gpg: BAD signature from.*"

View file

@ -1,35 +1,70 @@
{ config, pkgs, ... }:
{
accounts.email = {
maildirBasePath = "${config.xdg.dataHome}/mail/imap";
accounts.ktiu = {
primary = true;
address = "till@ktiu.net";
realName = "Till Straube";
imap.host = "shorbut.ktiu.net";
smtp.host = "shorbut.ktiu.net";
userName = "till";
neomutt.enable = true;
mbsync.enable = true;
passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till";
};
};
programs.msmtp.enable = true;
programs.mbsync.enable = true;
programs.neomutt = {
enable = true;
vimKeys = true;
binds = [
{ key = "V"; action = "noop"; map = ["index" "pager"]; }
];
macros = [
{ key = "c"; action = "<enter-command>set signature=$my_signature<enter><mail>"; map = ["index" "pager"]; }
];
extraConfig = builtins.readFile ./neomutt.conf;
# xdg.configFile."nvim/autocommmands.vim".source = ./autocommands.vim;
# xdg.configFile."nvim/ftplugin/markdown.vim".source = ./ftplugin/markdown.vim;
# xdg.configFile."nvim/ftplugin/r.vim".source = ./ftplugin/r.vim;
# xdg.configFile."nvim/ftplugin/rmd.vim".source = ./ftplugin/rmd.vim;
# xdg.configFile."nvim/syntax/rmd.vim".source = ./syntax/rmd.vim;
sort = "reverse-threads";
changeFolderWhenSourcingAccount = false;
extraConfig = builtins.readFile ./config.neomttrc;
};
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
accounts.email = {
maildirBasePath = "${config.xdg.dataHome}/mail/imap";
accounts = {
ktiu = {
primary = true;
address = "till@ktiu.net";
realName = "Till Straube";
imap.host = "shorbut.ktiu.net";
smtp.host = "shorbut.ktiu.net";
userName = "till";
signature.text = ''
Till Straube
'';
signature.showSignature = "append";
neomutt.enable = true;
neomutt.extraConfig = ''
unalternates *
alternates @ktiu.net$
set reverse_name
# set my_signature = {signature}
color status yellow default
'';
mbsync.enable = true;
msmtp.enable = true;
passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till";
};
gu = {
address = "straube@geo.uni-frankfurt.de";
realName = "Till Straube";
imap.host = "imap.server.uni-frankfurt.de";
smtp.host = "smtpauth.rz.uni-frankfurt.de";
userName = "tstraube";
signature = {
text = ''
Till Straube
'';
showSignature = "append";
};
neomutt.enable = true;
neomutt.extraConfig = ''
unalternates *
alternates ^straube@em.uni-frankfurt.de$ \
^tstraube@em.uni-frankfurt.de$ \
^tstraube@rz.uni-frankfurt.de$ \
^tstraube@uni-frankfurt.de$
unset reverse_name
# set my_signature = {signature}
color status blue default
'';
mbsync.enable = true;
msmtp.enable = true;
passwordCommand = "secret-tool lookup server imap.server.uni-frankfurt.de account tstraube";
};
};
};
}

View file

@ -1,51 +0,0 @@
# set mailcap_path = ~/.config/neomutt/mailcap
# set tmpdir = ~/.local/share/neomutt/tmp
set alias_file = ${config.xdg.dataHome}/neomutt/aliases.neomuttrc
# set my_download_folder = ~/tmp
# Caching
set header_cache = ${config.xdg.dataHome}/neomutt/cache/headers
set message_cachedir = ${config.xdg.dataHome}/neomutt/cache/bodies
set header_cache_backend = "lmdb"
# Basic options
unset wait_key
set mbox_type = Maildir
# set delete
set mail_check_stats
unset confirm_append
unset beep
unset mark_old
set sleep_time = 0
# set shell = /bin/bash
# Sending
# set sendmail = "/home/till/.nix-profile/bin/sendmail -C /home/till/.config/msmtp/msmtprc"
set use_envelope_from
unset reverse_realname
# Searching
# set nm_default_url = "notmuch:///home/till/.local/share/neomutt/mail/"
# Multi-account setup
# source ~/.config/neomutt/accounts/dkg.neomuttrc
# source ~/.config/neomutt/accounts/gu.neomuttrc
# bind index,pager g noop
# folder-hook $folder/gu/ source ~/.config/neomutt/accounts/gu.neomuttrc
# folder-hook $folder/systemli/ source ~/.config/neomutt/accounts/systemli.neomuttrc
# folder-hook $folder/ks/ source ~/.config/neomutt/accounts/ks.neomuttrc
# folder-hook $folder/gmail/ source ~/.config/neomutt/accounts/gmail.neomuttrc
# folder-hook $folder/ktiu/ source ~/.config/neomutt/accounts/ktiu.neomuttrc
# folder-hook $folder/dkg/ source ~/.config/neomutt/accounts/dkg.neomuttrc
# folder-hook $folder/papa/ source ~/.config/neomutt/accounts/papa.neomuttrc
# folder-hook . source ~/.config/neomutt/bindings.neomuttrc
# # Source config
# source ~/.config/neomutt/views.neomuttrc
# source ~/.config/neomutt/sidebar.neomuttrc
# source ~/.config/neomutt/colors.neomuttrc
# source ~/.config/neomutt/smime.neomuttrc
# source ~/.config/neomutt/pgp.neomuttrc
# source $alias_file