Merge pull request #2 from therealr5/neomutt

Neomutt config
This commit is contained in:
Rouven Seifert 2023-01-27 12:33:11 +01:00 committed by GitHub
commit 1cb566f4ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 251 additions and 18 deletions

View file

@ -47,11 +47,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1674661101,
"narHash": "sha256-iFFUngau5KHjsKScLhovpb7kCMjJvw/mXXOj6I62sVM=",
"lastModified": 1674729546,
"narHash": "sha256-15ukCRGhgDd7T60QBbc3PEeMpOkNVgwduT+u93zmyZM=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "fc89e70a1fb74429ad0f772d399325f69e65b357",
"rev": "06b17db22776e613a714e7e936618c16c3f47eaa",
"type": "github"
},
"original": {

View file

@ -82,6 +82,8 @@
traceroute
killall
python3
zip
unzip
];
system.stateVersion = "22.11";

View file

@ -5,6 +5,10 @@ wireguard:
dorm:
private: ENC[AES256_GCM,data:ISK2FjZsBx60Sgag8tJs+SyXSvdIQeIHeqB1V/m3g8RxkgIFBkCBnEjB8/g=,iv:CbDXnT3ERB+OYSa0+Xc4nN8joNj3dtSPTQa0SU5S5xg=,tag:Eap30fSv0MtBzaZvBLWAYA==,type:str]
preshared: ENC[AES256_GCM,data:5Kc/CMoEVpqJO0vyDOKmw5A19P68jJe5N025+kIvdvoOoNs2Knl127EuSAA=,iv:5lX9Kj5hz1GNh3a6Ig701cocuZ1CYr4Ze++wJzu7AAU=,tag:1rVx8EA5N++SgXpv0aMGNg==,type:str]
email:
tu-dresden: ENC[AES256_GCM,data:erIlghjlXWE2kUqMZLEN70c=,iv:hWTA68mBDe92qDPwemlSFR2vV2sL+/GI4WjHbwViVic=,tag:ZZ2/vTxBWiC6lbN33lNr5w==,type:str]
rfive: ENC[AES256_GCM,data:+lYvCL0OxM7o3nLN4fPeeVyMSKUL6O0uEg==,iv:I0KrK6GRkQWyDkp0GxXgHuCbDzDZ0u2gejNJCEzChxo=,tag:bBsG3n7nsb9T/NOCeptSgg==,type:str]
google: ENC[AES256_GCM,data:J97kR5rrJ7GpqIN1XAeVlg==,iv:r6qXU6pGEfeiajWyqq3cVatS2m6omlUcJD7bDTwHDQI=,tag:B/lTvdRVxKjyAsO7TSsXdA==,type:str]
sops:
kms: []
gcp_kms: []
@ -20,8 +24,8 @@ sops:
S0NwYWFQcmFtTm5zTEZLVXRtMi91Zk0K3ylHH4OXduJlJxepPz9GxBzVmKGpv9LL
ApkEQxfPL4Bxrb2XOFLOYqJGv2SwxBv1QNYT7eTXRLTEsIXUHR0MGA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-01-14T10:27:33Z"
mac: ENC[AES256_GCM,data:rRIzDJCCmAY2f8Ufn0055hiPLpBbz9OWRYLzrI5byzTtXAeoXMwOM4oMJUFg3uIofgvOPbUB1OP/ZJNG3iYTkUy8sDuqzU1Oogp2ZIdwv7ke3lAVec+oT1WGMOOithoRtahs7aP3bggnboaov32YUwOH9JAerV1MkDA+OJNyTpA=,iv:+N8ylMN3tgtEmuN9jtXDTRKvM3JHZXJr3IaeXOERVHM=,tag:MGzcRwD6Ih9kqp4/65DGCw==,type:str]
lastmodified: "2023-01-27T10:55:24Z"
mac: ENC[AES256_GCM,data:gzQG0cc3x0MYqrafz7VYBC49hcYed9Bfvih1I6jsNvZ2olKLZaOnj4FKhgoDhmOqbbmjl5SCEaMDIgTkRxj5IZvkLlaJwquO8RFDHVZr2wgOzbbxPmo6NIJL7+kOJ2Qr17lr/L0JMD5kHA1srN0K5jNwSeOneHsloZtJsypd/cY=,iv:KOt/CM9+8mv7xVHGjUZMaaCTuU8oD7UVqnNmTA9utm8=,tag:gwTDa1p8O7sY/v6ON71wlw==,type:str]
pgp:
- created_at: "2022-12-27T16:39:15Z"
enc: |-

View file

@ -1,5 +1,10 @@
{ config, pkgs, ... }:
{
# email passwords
sops.secrets."email/tu-dresden".owner = "rouven";
sops.secrets."email/rfive".owner = "rouven";
sops.secrets."email/google".owner = "rouven";
# generate system completions
programs.zsh.enable = true;

View file

@ -1,16 +1,34 @@
{ config, ... }:
{ config, pkgs, ... }:
let
gpg-default-key = "116987A8DD3F78FF8601BF4DB95E8FE6B11C4D09";
in
{
programs.thunderbird = {
home.packages = with pkgs; [
imv
w3m
urlview
];
services.mbsync.enable = true;
programs = {
neomutt = {
enable = true;
profiles = {
default = {
withExternalGnupg = true;
isDefault = true;
};
sidebar.enable = true;
checkStatsInterval = 30;
extraConfig = ''
bind pager <Space> noop
bind index,pager \Cp sidebar-prev
# Move the highlight to the next mailbox
bind index,pager \Cn sidebar-next
# Open the highlighted mailbox
bind index,pager <space><return> sidebar-open
set mailcap_path = ${./mailcap}
source ${./vim-keys.rc}
source ${./dracula.muttrc}
source ${./powerline.neomuttrc}
'';
};
mbsync.enable = true;
msmtp.enable = true;
};
accounts.email.accounts = {
"rouven@rfive.de" = rec {
@ -19,6 +37,7 @@ in
gpg.key = gpg-default-key;
realName = "Rouven Seifert";
userName = address;
passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/email/rfive";
imap = {
host = "pro1.mail.ovh.net";
port = 993;
@ -28,13 +47,28 @@ in
port = 587;
tls.useStartTls = true;
};
thunderbird.enable = true;
msmtp.enable = true;
mbsync = {
enable = true;
create = "maildir";
extraConfig = {
account = {
AuthMechs = "Login";
};
"TU Dresden" = {
};
};
neomutt = {
enable = true;
mailboxName = "--rouven@rfive.de--";
extraMailboxes = [ "Sent" "Trash" "Junk-E-Mail" "Drafts" ];
};
};
"TU-Dresden" = {
address = "rouven.seifert@mailbox.tu-dresden.de";
gpg.key = gpg-default-key;
realName = "Rouven Seifert";
userName = "user\\rose159e";
userName = "rose159e";
passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/email/tu-dresden";
imap = {
host = "msx.tu-dresden.de";
port = 993;
@ -45,11 +79,36 @@ in
tls.useStartTls = true;
};
thunderbird.enable = true;
mbsync = {
enable = true;
create = "maildir";
extraConfig = {
account = {
AuthMechs = "Login";
};
"Gmail" = rec {
};
};
msmtp.enable = true;
neomutt = {
enable = true;
mailboxName = "--TU Dresden-------";
# mbsync can't handle umlauts, crap
extraMailboxes = [ "Gesendete Elemente" "Opal" "Gel&APY-schte Elemente" "Junk-E-Mail" "Entw&APw-rfe" ];
extraConfig = ''
unset postponed
unset trash
unset record
set postponed='+Entw&APw-rfe'
set trash='+Gel&APY-schte Elemente'
set record='+Gesendete Elemente'
'';
};
};
"gmail" = rec {
address = "seifertrouven@gmail.com";
realName = "Rouven Seifert";
userName = address;
passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/email/google";
imap = {
host = "imap.gmail.com";
port = 993;
@ -58,7 +117,32 @@ in
host = "smtp.gmail.com";
port = 465;
};
thunderbird.enable = true;
mbsync = {
enable = true;
create = "maildir";
extraConfig = {
account = {
AuthMechs = "Login";
};
};
};
msmtp.enable = true;
neomutt = {
enable = true;
mailboxName = "--gmail------------";
extraMailboxes = [ "[Gmail]/Gesendet" "[Gmail]/Papierkorb" "[Gmail]/Spam" "[Gmail]/Entw&APw-rfe" ];
extraConfig = ''
unset postponed
unset trash
unset record
set postponed='+[Gmail]/Entw&APw-rfe'
set trash='+[Gmail]/Papierkorb'
set record='+[Gmail/Gesendet]'
'';
};
};
};
home.file.".urlview".text = ''
COMMAND google-chrome-stable %s &> /dev/null
'';
}

View file

@ -0,0 +1,51 @@
###############################################################################
# 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 color210 default ~D # deleted messages
color index color84 default ~F # flagged messages
color index color117 default ~N # new 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
color sidebar_indicator cyan black
color sidebar_highlight white color8
color sidebar_divider color8 black
color sidebar_flagged red black
color sidebar_new green black
color sidebar_ordinary color245 default
color sidebar_spool_file color207 default
color sidebar_unread color136 default

View file

@ -0,0 +1,6 @@
text/plain; w3m -I %{charset} -T text/plain; copiousoutput;
text/html; w3m -I %{charset} -T text/html; copiousoutput;
image/*; setsid imv %s >/dev/null & ;
video/*; setsid mpv --quiet %s >/dev/null &;
audio/*; mpv %s ;
application/pdf; setsid evince %s >/dev/null & ;

View file

@ -0,0 +1,46 @@
# ----------------------------------------------------------------------------
# Powerline / nerdfont
# This is a bit "hackish" due to neomutt limitations
#
# Author: Sheoak <contact [at] sheoak.fr>
# ----------------------------------------------------------------------------
set index_format=" %zs %zc %zt %{!%d %b} . %-28.28L %?M?(%1M)& ? %?X?&·? %s"
set pager_format=" %n %zc  %T %s%*  %{!%d %b · %H:%M} %?X?  %X ? %P  "
set status_format = " %f%?r? %r?   %m %?n?  %n ?  %?d?  %d ?%?t?  %t ?%?F?  %F? %> %?p?  %p ?"
set vfolder_format = " %N %?n?%3n& ? %8m  · %f"
set attach_format = "%u%D  %T%-75.75d %?T?%& ? %5s · %m/%M"
# no addressed to me, to me, group, cc, sent by me, mailing list
set to_chars="➜"
# unchanged mailbox, changed, read only, attach mode
set status_chars = " "
ifdef crypt_chars set crypt_chars = " "
set flag_chars = " "
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
tag-transforms "replied" "↻ " \
"encrytpted" "" \
"signed" "" \
"attachment" "" \
# The formats must start with 'G' and the entire sequence is case sensitive.
tag-formats "replied" "GR" \
"encrypted" "GE" \
"signed" "GS" \
"attachment" "GA" \
color status white black
# powerline status bar hack
color status green black ''
color status yellow black ''
color status red black ''
color status brightblack blue '(.*)' 1
color status blue black '.*()' 1
color status black blue '\s* [0-9]+\s*'
color status blue black '().*$' 1
color status yellow black '()\s*\s*[0-9]+\s*' 1
color status black yellow '\s*\s*[0-9]+\s*'
color status blue yellow '() ([0-9]+%|all|end) \s*' 1
color status black blue ' ([0-9]+%|all|end) \s*'
color status yellow black '()\s*' 1
color status default black ''

View file

@ -0,0 +1,35 @@
#------------------------------------------------------------
# Vi Key Bindings
#------------------------------------------------------------
# Moving around
bind attach,browser,index g noop
bind attach,browser,index gg first-entry
bind attach,browser,index G last-entry
bind pager g noop
bind pager gg top
bind pager G bottom
bind pager k previous-line
bind pager j next-line
# Scrolling
bind attach,browser,pager,index \CF next-page
bind attach,browser,pager,index \CB previous-page
bind attach,browser,pager,index \Cu half-up
bind attach,browser,pager,index \Cd half-down
bind browser,pager \Ce next-line
bind browser,pager \Cy previous-line
bind index \Ce next-line
bind index \Cy previous-line
bind pager,index d noop
bind pager,index dd delete-message
# Threads
bind browser,pager,index N search-opposite
bind pager,index dT delete-thread
bind pager,index dt delete-subthread
bind pager,index gt next-thread
bind pager,index gT previous-thread
bind index za collapse-thread
bind index zA collapse-all # Missing :folddisable/foldenable