Move mail configs
This commit is contained in:
401
home/mail/aerc/aerc.conf
Normal file
401
home/mail/aerc/aerc.conf
Normal file
@ -0,0 +1,401 @@
|
||||
#
|
||||
# aerc main configuration
|
||||
|
||||
[general]
|
||||
#
|
||||
# Used as a default path for save operations if no other path is specified.
|
||||
# ~ is expanded to the current user home dir.
|
||||
#
|
||||
# Default: ""
|
||||
#default-save-path=~/tmp
|
||||
|
||||
#
|
||||
# If set to "gpg", aerc will use system gpg binary and keystore for all crypto
|
||||
# operations. Otherwise, the internal openpgp implementation will be used.
|
||||
#
|
||||
# Default: internal
|
||||
pgp-provider=gpg
|
||||
|
||||
# By default, the file permissions of accounts.conf must be restrictive and
|
||||
# only allow reading by the file owner (0600). Set this option to true to
|
||||
# ignore this permission check. Use this with care as it may expose your
|
||||
# credentials.
|
||||
#
|
||||
# Default: false
|
||||
unsafe-accounts-conf=true
|
||||
|
||||
[ui]
|
||||
#
|
||||
# Describes the format for each row in a mailbox view. This field is compatible
|
||||
# with mutt's printf-like syntax.
|
||||
#
|
||||
# Default: %-20.20D %-17.17n %Z %s
|
||||
index-format=%-20.20D %-17.17n %Z %s
|
||||
|
||||
#
|
||||
# See time.Time#Format at https://godoc.org/time#Time.Format
|
||||
#
|
||||
# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
|
||||
timestamp-format=2006-01-02 03:04 PM
|
||||
|
||||
#
|
||||
# Index-only time format for messages that were received/sent today.
|
||||
# If this is not specified, timestamp-format is used instead.
|
||||
#
|
||||
# Default: ""
|
||||
#this-day-time-format=03:04 PM
|
||||
|
||||
#
|
||||
# Index-only time format for messages that were received/sent within the last
|
||||
# 7 days. If this is not specified, timestamp-format is used instead.
|
||||
#
|
||||
# Default: ""
|
||||
#this-week-time-format=Monday 03:04 PM
|
||||
|
||||
#
|
||||
# Index-only time format for messages that were received/sent this year.
|
||||
# If this is not specified, timestamp-format is used instead.
|
||||
#
|
||||
# Default: ""
|
||||
#this-year-time-format=January 02
|
||||
|
||||
#
|
||||
# Width of the sidebar, including the border.
|
||||
#
|
||||
# Default: 20
|
||||
sidebar-width=20
|
||||
|
||||
#
|
||||
# Message to display when viewing an empty folder.
|
||||
#
|
||||
# Default: (no messages)
|
||||
empty-message=(no messages)
|
||||
|
||||
# Message to display when no folders exists or are all filtered
|
||||
#
|
||||
# Default: (no folders)
|
||||
empty-dirlist=(no folders)
|
||||
|
||||
# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
|
||||
#
|
||||
# Default: false
|
||||
mouse-enabled=false
|
||||
|
||||
#
|
||||
# Ring the bell when new messages are received
|
||||
#
|
||||
# Default: true
|
||||
new-message-bell=true
|
||||
|
||||
# Marker to show before a pinned tab's name.
|
||||
#
|
||||
# Default: `
|
||||
pinned-tab-marker='`'
|
||||
|
||||
# Describes the format string to use for the directory list
|
||||
#
|
||||
# Default: %n %>r
|
||||
dirlist-format=%n %>r
|
||||
|
||||
# Delay after which the messages are actually listed when entering a directory.
|
||||
# This avoids loading messages when skipping over folders and makes the UI more
|
||||
# responsive. If you do not want that, set it to 0s.
|
||||
#
|
||||
# Default: 200ms
|
||||
dirlist-delay=200ms
|
||||
|
||||
# Display the directory list as a foldable tree that allows to collapse and
|
||||
# expand the folders.
|
||||
#
|
||||
# Default: false
|
||||
dirlist-tree=false
|
||||
|
||||
# If dirlist-tree is enabled, set level at which folders are collapsed by
|
||||
# default. Set to 0 to disable.
|
||||
#
|
||||
# Default: 0
|
||||
dirlist-collapse=0
|
||||
|
||||
# List of space-separated criteria to sort the messages by, see *sort*
|
||||
# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
|
||||
# reverses that criterion.
|
||||
#
|
||||
# Example: "from -r date"
|
||||
#
|
||||
# Default: ""
|
||||
sort=
|
||||
|
||||
# Moves to next message when the current message is deleted
|
||||
#
|
||||
# Default: true
|
||||
next-message-on-delete=true
|
||||
|
||||
# Automatically set the "seen" flag when a message is opened in the message
|
||||
# viewer.
|
||||
#
|
||||
# Default: true
|
||||
auto-mark-read=true
|
||||
|
||||
# The directories where the stylesets are stored. It takes a colon-separated
|
||||
# list of directories. If this is unset or if a styleset cannot be found, the
|
||||
# following paths will be used as a fallback in that order:
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
# /nix/store/gjg6gkw6fgxr97ld54wlz017njdkl7x1-aerc-0.13.0/share/aerc/stylesets
|
||||
#
|
||||
# default: ""
|
||||
stylesets-dirs=
|
||||
|
||||
# Uncomment to use box-drawing characters for vertical and horizontal borders.
|
||||
#
|
||||
# Default: spaces
|
||||
# border-char-vertical=│
|
||||
# border-char-horizontal=─
|
||||
|
||||
# Sets the styleset to use for the aerc ui elements.
|
||||
#
|
||||
# Default: default
|
||||
styleset-name=default
|
||||
|
||||
# Activates fuzzy search in commands and their arguments: the typed string is
|
||||
# searched in the command or option in any position, and need not be
|
||||
# consecutive characters in the command or option.
|
||||
#fuzzy-complete=false
|
||||
|
||||
# How long to wait after the last input before auto-completion is triggered.
|
||||
#
|
||||
# Default: 250ms
|
||||
completion-delay=250ms
|
||||
|
||||
#
|
||||
# Global switch for completion popovers
|
||||
#
|
||||
# Default: true
|
||||
completion-popovers=true
|
||||
|
||||
# Uncomment to use UTF-8 symbols to indicate PGP status of messages
|
||||
#
|
||||
# Default: ASCII
|
||||
#icon-unencrypted=
|
||||
#icon-encrypted=✔
|
||||
#icon-signed=✔
|
||||
#icon-signed-encrypted=✔
|
||||
#icon-unknown=✘
|
||||
#icon-invalid=⚠
|
||||
|
||||
#[ui:account=foo]
|
||||
#
|
||||
# Enable a threaded view of messages. If this is not supported by the backend
|
||||
# (IMAP server or notmuch), threads will be built by the client.
|
||||
#
|
||||
# Default: false
|
||||
#threading-enabled=false
|
||||
|
||||
# Force client-side thread building
|
||||
#
|
||||
# Default: false
|
||||
#force-client-threads=false
|
||||
|
||||
# Debounce client-side thread building
|
||||
#
|
||||
# Default: 50ms
|
||||
#client-threads-delay=50ms
|
||||
|
||||
[statusline]
|
||||
# Describes the format string for the statusline.
|
||||
#
|
||||
# Default: [%a] %S %>%T
|
||||
render-format=[%a] %S %>%T
|
||||
|
||||
# Specifies the separator between grouped statusline elements.
|
||||
#
|
||||
# Default: " | "
|
||||
# separator=
|
||||
|
||||
# Defines the mode for displaying the status elements.
|
||||
# Options: text, icon
|
||||
#
|
||||
# Default: text
|
||||
# display-mode=
|
||||
|
||||
[viewer]
|
||||
#
|
||||
# Specifies the pager to use when displaying emails. Note that some filters
|
||||
# may add ANSI codes to add color to rendered emails, so you may want to use a
|
||||
# pager which supports ANSI codes.
|
||||
#
|
||||
# Default: less -R
|
||||
pager=less -R
|
||||
|
||||
#
|
||||
# If an email offers several versions (multipart), you can configure which
|
||||
# mimetype to prefer. For example, this can be used to prefer plaintext over
|
||||
# html emails.
|
||||
#
|
||||
# Default: text/plain,text/html
|
||||
alternatives=text/plain,text/html
|
||||
|
||||
#
|
||||
# Default setting to determine whether to show full headers or only parsed
|
||||
# ones in message viewer.
|
||||
#
|
||||
# Default: false
|
||||
show-headers=false
|
||||
|
||||
#
|
||||
# Layout of headers when viewing a message. To display multiple headers in the
|
||||
# same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
|
||||
# none of their specified headers are present in the message.
|
||||
#
|
||||
# Default: From|To,Cc|Bcc,Date,Subject
|
||||
header-layout=From|To,Cc|Bcc,Date,Subject
|
||||
|
||||
# Whether to always show the mimetype of an email, even when it is just a single part
|
||||
#
|
||||
# Default: false
|
||||
always-show-mime=false
|
||||
|
||||
# Parses and extracts http links when viewing a message. Links can then be
|
||||
# accessed with the open-link command.
|
||||
#
|
||||
# Default: true
|
||||
parse-http-links=true
|
||||
|
||||
[compose]
|
||||
#
|
||||
# Specifies the command to run the editor with. It will be shown in an embedded
|
||||
# terminal, though it may also launch a graphical window if the environment
|
||||
# supports it. Defaults to $EDITOR, or vi.
|
||||
editor=
|
||||
|
||||
#
|
||||
# Default header fields to display when composing a message. To display
|
||||
# multiple headers in the same row, separate them with a pipe, e.g. "To|From".
|
||||
#
|
||||
# Default: To|From,Subject
|
||||
header-layout=To|From,Subject
|
||||
|
||||
#
|
||||
# Specifies the command to be used to tab-complete email addresses. Any
|
||||
# occurrence of "%s" in the address-book-cmd will be replaced with what the
|
||||
# user has typed so far.
|
||||
#
|
||||
# The command must output the completions to standard output, one completion
|
||||
# per line. Each line must be tab-delimited, with an email address occurring as
|
||||
# the first field. Only the email address field is required. The second field,
|
||||
# if present, will be treated as the contact name. Additional fields are
|
||||
# ignored.
|
||||
#
|
||||
# This parameter can also be set per account in accounts.conf.
|
||||
address-book-cmd=
|
||||
|
||||
#
|
||||
# Allow to address yourself when replying
|
||||
#
|
||||
# Default: true
|
||||
reply-to-self=true
|
||||
|
||||
#
|
||||
# Warn before sending an email that matches the specified regexp but does not
|
||||
# have any attachments. Leave empty to disable this feature.
|
||||
#
|
||||
# Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The
|
||||
# "(?im)" flags are set by default (case-insensitive and multi-line).
|
||||
#
|
||||
# Example:
|
||||
# no-attachment-warning=^[^>]*attach(ed|ment)
|
||||
#
|
||||
no-attachment-warning=
|
||||
|
||||
[filters]
|
||||
#
|
||||
# Filters allow you to pipe an email body through a shell command to render
|
||||
# certain emails differently, e.g. highlighting them with ANSI escape codes.
|
||||
#
|
||||
# The commands are invoked with sh -c. The following folders are appended to
|
||||
# the system $PATH to allow referencing filters from their name only:
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
|
||||
# $PREFIX/share/aerc/filters
|
||||
# /usr/share/aerc/filters
|
||||
#
|
||||
# The following variables are defined in the filter command environment:
|
||||
#
|
||||
# AERC_MIME_TYPE the part MIME type/subtype
|
||||
# AERC_FILENAME the attachment filename (if any)
|
||||
#
|
||||
# The first filter which matches the email's mimetype will be used, so order
|
||||
# them from most to least specific.
|
||||
#
|
||||
# You can also match on non-mimetypes, by prefixing with the header to match
|
||||
# against (non-case-sensitive) and a comma, e.g. subject,text will match a
|
||||
# subject which contains "text". Use header,~regex to match against a regex.
|
||||
#
|
||||
text/plain=colorize
|
||||
text/calendar=calendar
|
||||
message/delivery-status=colorize
|
||||
message/rfc822=colorize
|
||||
#text/html=pandoc -f html -t plain | colorize
|
||||
#text/html=html | colorize
|
||||
#text/*=bat -fP --file-name="$AERC_FILENAME"
|
||||
#application/x-sh=bat -fP -l sh
|
||||
#image/*=catimg -w $(tput cols) -
|
||||
#subject,~Git(hub|lab)=lolcat -f
|
||||
#from,thatguywhodoesnothardwraphismessages=fmt -w 72 | colorize
|
||||
|
||||
[openers]
|
||||
#
|
||||
# Openers allow you to specify the command to use for the :open action on a
|
||||
# per-MIME-type basis.
|
||||
#
|
||||
# {} is expanded as the temporary filename to be opened. If it is not
|
||||
# encountered in the command, the temporary filename will be appened to the end
|
||||
# of the command.
|
||||
#
|
||||
# Examples:
|
||||
# text/html=surf -dfgms
|
||||
# text/plain=gvim {} +125
|
||||
# message/rfc822=thunderbird
|
||||
|
||||
[triggers]
|
||||
#
|
||||
# Triggers specify commands to execute when certain events occur.
|
||||
#
|
||||
# Example:
|
||||
# new-email=exec notify-send "New email from %n" "%s"
|
||||
|
||||
#
|
||||
# Executed when a new email arrives in the selected folder
|
||||
new-email=
|
||||
|
||||
[templates]
|
||||
# Templates are used to populate email bodies automatically.
|
||||
#
|
||||
|
||||
# The directories where the templates are stored. It takes a colon-separated
|
||||
# list of directories. If this is unset or if a template cannot be found, the
|
||||
# following paths will be used as a fallback in that order:
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
# /nix/store/gjg6gkw6fgxr97ld54wlz017njdkl7x1-aerc-0.13.0/share/aerc/templates
|
||||
#
|
||||
# default: ""
|
||||
template-dirs=
|
||||
|
||||
# The default template to be used for new messages.
|
||||
#
|
||||
# default: new_message
|
||||
new-message=new_message
|
||||
|
||||
# The default template to be used for quoted replies.
|
||||
#
|
||||
# default: quoted_reply
|
||||
quoted-reply=quoted_reply
|
||||
|
||||
# The default template to be used for forward as body.
|
||||
#
|
||||
# default: forward_as_body
|
||||
forwards=forward_as_body
|
127
home/mail/aerc/binds.conf
Normal file
127
home/mail/aerc/binds.conf
Normal file
@ -0,0 +1,127 @@
|
||||
# Binds are of the form <key sequence> = <command to run>
|
||||
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
|
||||
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-t> = :term<Enter>
|
||||
? = :help keys<Enter>
|
||||
|
||||
[messages]
|
||||
q = :quit<Enter>
|
||||
|
||||
j = :next<Enter>
|
||||
<Down> = :next<Enter>
|
||||
<C-d> = :next 50%<Enter>
|
||||
<C-f> = :next 100%<Enter>
|
||||
<PgDn> = :next 100%<Enter>
|
||||
|
||||
k = :prev<Enter>
|
||||
<Up> = :prev<Enter>
|
||||
<C-u> = :prev 50%<Enter>
|
||||
<C-b> = :prev 100%<Enter>
|
||||
<PgUp> = :prev 100%<Enter>
|
||||
g = :select 0<Enter>
|
||||
G = :select -1<Enter>
|
||||
|
||||
J = :next-folder<Enter>
|
||||
K = :prev-folder<Enter>
|
||||
H = :collapse-folder<Enter>
|
||||
L = :expand-folder<Enter>
|
||||
|
||||
v = :mark -t<Enter>
|
||||
V = :mark -v<Enter>
|
||||
|
||||
T = :toggle-threads<Enter>
|
||||
|
||||
<Enter> = :view<Enter>
|
||||
d = :prompt 'Really delete this message?' 'delete-message'<Enter>
|
||||
D = :delete<Enter>
|
||||
A = :archive flat<Enter>
|
||||
|
||||
C = :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<space>
|
||||
\ = :filter<space>
|
||||
n = :next-result<Enter>
|
||||
N = :prev-result<Enter>
|
||||
<Esc> = :clear<Enter>
|
||||
|
||||
[messages:folder=Drafts]
|
||||
<Enter> = :recall<Enter>
|
||||
|
||||
[view]
|
||||
/ = :toggle-key-passthrough<Enter>/
|
||||
q = :close<Enter>
|
||||
O = :open<Enter>
|
||||
S = :save<space>
|
||||
| = :pipe<space>
|
||||
D = :delete<Enter>
|
||||
A = :archive flat<Enter>
|
||||
|
||||
<C-l> = :open-link <space>
|
||||
|
||||
f = :forward<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-j> = :next-part<Enter>
|
||||
J = :next<Enter>
|
||||
K = :prev<Enter>
|
||||
|
||||
[view::passthrough]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<Esc> = :toggle-key-passthrough<Enter>
|
||||
|
||||
[compose]
|
||||
# Keybindings used when the embedded terminal is not selected in the compose
|
||||
# view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<A-p> = :switch-account -p<Enter>
|
||||
<A-n> = :switch-account -n<Enter>
|
||||
<tab> = :next-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
|
||||
[compose::editor]
|
||||
# Keybindings used when the embedded terminal is selected in the compose view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
|
||||
[compose::review]
|
||||
# Keybindings used when reviewing a message to be sent
|
||||
y = :send<Enter>
|
||||
n = :abort<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>
|
264
home/mail/default.nix
Normal file
264
home/mail/default.nix
Normal file
@ -0,0 +1,264 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
mailBaseConfig = {
|
||||
configName,
|
||||
address,
|
||||
userName ? address,
|
||||
host,
|
||||
displayName,
|
||||
extraMailboxes ? [],
|
||||
enableDefaultMailboxes ? true,
|
||||
neomuttExtraConfig ? "",
|
||||
} : let
|
||||
defaultMailboxes = if enableDefaultMailboxes then
|
||||
/* `tree ~/Maildir/vbrandl/ -l -d -I "Archive|cur|new|tmp|certs|.notmuch" -afin --noreport | awk '{if(NR>1)print}' | tr '\n' ' '` */
|
||||
[ "Drafts" "Junk" "Sent" "Trash" ]
|
||||
else
|
||||
[];
|
||||
mailboxes = defaultMailboxes ++ extraMailboxes;
|
||||
in {
|
||||
address = address;
|
||||
userName = userName;
|
||||
realName = displayName;
|
||||
imap.host = host;
|
||||
smtp.host = host;
|
||||
passwordCommand = "${pkgs.libsecret}/bin/secret-tool lookup email ${address}";
|
||||
signature = {
|
||||
text = displayName;
|
||||
showSignature = "append";
|
||||
};
|
||||
aerc = {
|
||||
enable = true;
|
||||
extraAccounts = {
|
||||
pgp-opportunistic-encrypt = true;
|
||||
pgp-autosign = true;
|
||||
};
|
||||
};
|
||||
imapnotify = {
|
||||
enable = true;
|
||||
/* TODO: which boxes? */
|
||||
boxes = [ "Inbox" ];
|
||||
onNotify = "${pkgs.isync}/bin/mbsync ${configName} && ${pkgs.libnotify}/bin/notify-send -a mail '${configName}: new in %s'";
|
||||
/* onNotifyPost = { */
|
||||
/* mail = "${pkgs.libnotify}/bin/notify-send -a mail '${configName}: new in %s'"; */
|
||||
/* /1* update = "${pkgs.libnotify}/bin/notify-send -a mail '${configName}: update %s'"; *1/ */
|
||||
/* /1* expunge = "${pkgs.libnotify}/bin/notify-send -a mail '${configName}: expunge %s'"; *1/ */
|
||||
/* }; */
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
/* sync changes to maildir in both directions */
|
||||
create = "both";
|
||||
expunge = "both";
|
||||
remove = "both";
|
||||
};
|
||||
msmtp.enable = true;
|
||||
neomutt = {
|
||||
enable = true;
|
||||
extraMailboxes = mailboxes;
|
||||
extraConfig = ''
|
||||
# use encrypted headers
|
||||
set crypt_protected_headers_write = yes
|
||||
'' + neomuttExtraConfig;
|
||||
};
|
||||
notmuch.enable = true;
|
||||
};
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
libsecret
|
||||
libnotify
|
||||
urlview
|
||||
];
|
||||
home.file.mailcap = {
|
||||
target = ".mailcap";
|
||||
source = ./mailcap;
|
||||
};
|
||||
|
||||
programs.password-store.enable = true;
|
||||
programs.aerc = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./aerc/aerc.conf;
|
||||
/* { */
|
||||
/* general = { */
|
||||
/* unsafe-accounts-conf = true; */
|
||||
/* }; */
|
||||
/* }; */
|
||||
extraBinds = builtins.readFile ./aerc/binds.conf;
|
||||
};
|
||||
services.mbsync.enable = true;
|
||||
programs.mbsync.enable = true;
|
||||
services.imapnotify.enable = true;
|
||||
programs.notmuch = {
|
||||
enable = true;
|
||||
hooks.preNew = "mbsync --all";
|
||||
};
|
||||
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
sidebar.enable = true;
|
||||
extraConfig = builtins.readFile ./neomutt/neomuttrc;
|
||||
/* vimKeys = true; */
|
||||
macros = [
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "B";
|
||||
action = "|urlview\\n";
|
||||
}
|
||||
];
|
||||
binds = [
|
||||
/* sidebar */
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "J";
|
||||
action = "sidebar-next";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "K";
|
||||
action = "sidebar-prev";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "O";
|
||||
action = "sidebar-open";
|
||||
}
|
||||
|
||||
/* moving around */
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "j";
|
||||
action = "next-entry";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "k";
|
||||
action = "previous-entry";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "g";
|
||||
action = "noop";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "gg";
|
||||
action = "first-entry";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "G";
|
||||
action = "last-entry";
|
||||
}
|
||||
{ map = [ "attach" "browser" "index" ];
|
||||
key = "n";
|
||||
action = "next-unread";
|
||||
}
|
||||
{ map = [ "pager" ];
|
||||
key = "g";
|
||||
action = "noop";
|
||||
}
|
||||
{ map = [ "pager" ];
|
||||
key = "gg";
|
||||
action = "top";
|
||||
}
|
||||
{ map = [ "pager" ];
|
||||
key = "G";
|
||||
action = "bottom";
|
||||
}
|
||||
{ map = [ "pager" ];
|
||||
key = "k";
|
||||
action = "previous-line";
|
||||
}
|
||||
{ map = [ "pager" ];
|
||||
key = "j";
|
||||
action = "next-line";
|
||||
}
|
||||
|
||||
/* deletion */
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "d";
|
||||
action = "noop";
|
||||
}
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "dd";
|
||||
action = "delete-message";
|
||||
}
|
||||
/* TODO: mark as new? */
|
||||
{ map = [ "browser" "pager" "index" ];
|
||||
key = "U";
|
||||
action = "toggle-new";
|
||||
}
|
||||
{ map = [ "browser" "pager" "index" ];
|
||||
key = "n";
|
||||
action = "search-next";
|
||||
}
|
||||
{ map = [ "browser" "pager" "index" ];
|
||||
key = "N";
|
||||
action = "search-opposite";
|
||||
}
|
||||
|
||||
/* threads */
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "dT";
|
||||
action = "delete-thread";
|
||||
}
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "dt";
|
||||
action = "delete-subthread";
|
||||
}
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "gt";
|
||||
action = "next-thread";
|
||||
}
|
||||
{ map = [ "pager" "index" ];
|
||||
key = "gT";
|
||||
action = "previous-thread";
|
||||
}
|
||||
{ map = [ "index" ];
|
||||
key = "za";
|
||||
action = "collapse-thread";
|
||||
}
|
||||
{ map = [ "index" ];
|
||||
key = "zA";
|
||||
action = "collapse-all";
|
||||
}
|
||||
];
|
||||
};
|
||||
programs.msmtp.enable = true;
|
||||
|
||||
accounts.email.accounts = let
|
||||
aliases = "mail(\\+.*)?@vbrandl.net";
|
||||
in {
|
||||
vbrandl = (
|
||||
mailBaseConfig {
|
||||
configName = "vbrandl";
|
||||
address = "mail@vbrandl.net";
|
||||
host = "mail.vbrandl.net";
|
||||
displayName = "Valentin Brandl";
|
||||
extraMailboxes = [ "Archive" ];
|
||||
|
||||
/* #set use_from = yes */
|
||||
/* #set envelope_from = true */
|
||||
neomuttExtraConfig = ''
|
||||
# TODO: reply with tagged mail
|
||||
set reverse_name = yes
|
||||
alternates '${aliases}'
|
||||
'';
|
||||
}) // {
|
||||
primary = true;
|
||||
aliases = [ aliases ];
|
||||
gpg = {
|
||||
encryptByDefault = true;
|
||||
signByDefault = true;
|
||||
key = "1FFE431282F4B8CC0A7579167FB009175885FC76";
|
||||
};
|
||||
};
|
||||
|
||||
riseup = (
|
||||
mailBaseConfig {
|
||||
configName = "riseup";
|
||||
address = "vbrandl@riseup.net";
|
||||
host = "mail.riseup.net";
|
||||
displayName = "Valentin Brandl";
|
||||
extraMailboxes = [ "SKS-devel" ];
|
||||
}) // {
|
||||
userName = "vbrandl";
|
||||
gpg = {
|
||||
encryptByDefault = true;
|
||||
signByDefault = true;
|
||||
key = "1FFE431282F4B8CC0A7579167FB009175885FC76";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
3
home/mail/mailcap
Normal file
3
home/mail/mailcap
Normal file
@ -0,0 +1,3 @@
|
||||
text/html; w3m -I %{charset} -T text/html; copiousoutput;
|
||||
image/*; feh %s;
|
||||
application/pdf; zathura %s;
|
59
home/mail/neomutt/neomuttrc
Normal file
59
home/mail/neomutt/neomuttrc
Normal file
@ -0,0 +1,59 @@
|
||||
# edit mail headers when composing
|
||||
set edit_headers
|
||||
|
||||
# check mailbox stats periodically
|
||||
set mail_check_stats = yes
|
||||
|
||||
# don't indicate line wraps
|
||||
set markers = no
|
||||
|
||||
# reply with tagged email
|
||||
# unset envelope_from_address
|
||||
# set use_envelope_from
|
||||
|
||||
# prefer plaintext over html
|
||||
alternative_order text/enriched text/plain text/html text
|
||||
|
||||
# colors
|
||||
###############################################################################
|
||||
# Dracula Theme for Mutt: https://draculatheme.com/
|
||||
#
|
||||
# @author Paul Townsend <paul@caprica.org>
|
||||
|
||||
# general ------------ foreground ---- background -----------------------------
|
||||
color error color231 color212
|
||||
color indicator color231 color241
|
||||
color markers color210 default
|
||||
color message default default
|
||||
color normal default default
|
||||
color prompt default default
|
||||
color search color84 default
|
||||
color status color141 color236
|
||||
color tilde color231 default
|
||||
color tree color141 default
|
||||
|
||||
# message index ------ foreground ---- background -----------------------------
|
||||
color index color84 default ~F # flagged messages
|
||||
color index color117 default ~N|~O # new messages
|
||||
color index color210 default ~D # deleted messages
|
||||
color index color212 default ~Q # messages which have been replied to
|
||||
color index color215 default ~T # tagged messages
|
||||
color index color141 default ~v # messages part of a collapsed thread
|
||||
|
||||
# message headers ---- foreground ---- background -----------------------------
|
||||
color hdrdefault color117 default
|
||||
color header color231 default ^Subject:.*
|
||||
|
||||
# message body ------- foreground ---- background -----------------------------
|
||||
color attachment color228 default
|
||||
color body color231 default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ # email addresses
|
||||
color body color228 default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ # URLs
|
||||
color body color231 default (^|[[:space:]])\\*[^[:space:]]+\\*([[:space:]]|$) # *bold* text
|
||||
color body color231 default (^|[[:space:]])_[^[:space:]]+_([[:space:]]|$) # _underlined_ text
|
||||
color body color231 default (^|[[:space:]])/[^[:space:]]+/([[:space:]]|$) # /italic/ text
|
||||
color quoted color61 default
|
||||
color quoted1 color117 default
|
||||
color quoted2 color84 default
|
||||
color quoted3 color215 default
|
||||
color quoted4 color212 default
|
||||
color signature color212 default
|
Reference in New Issue
Block a user