mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
feat(neomutt): configure
This commit is contained in:
@@ -171,10 +171,9 @@ in
|
||||
mkdir "$1" && cd "$1"
|
||||
'';
|
||||
in {
|
||||
"ß" = "${pkgs.utillinux}/bin/setsid";
|
||||
cat = "${pkgs.bat}/bin/bat --style=plain";
|
||||
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
||||
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
||||
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
|
||||
cp = "cp -i";
|
||||
dig = "dig +short";
|
||||
ip = "${pkgs.iproute}/bin/ip -c";
|
||||
@@ -185,18 +184,20 @@ in
|
||||
mv = "mv -i";
|
||||
nixi = "nix repl '<nixpkgs>'";
|
||||
ns = "nix-shell --run zsh";
|
||||
s = "${pkgs.systemd}/bin/systemctl";
|
||||
us = "${pkgs.systemd}/bin/systemctl --user";
|
||||
o = "${pkgs.xdg_utils}/bin/xdg-open";
|
||||
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
||||
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
|
||||
rm = "rm -i";
|
||||
s = "${pkgs.systemd}/bin/systemctl";
|
||||
take = "source ${take}";
|
||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||
yt = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -ic"; # Download video link
|
||||
yta = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -xic"; # Download with audio
|
||||
tree = "${pkgs.exa}/bin/exa --tree";
|
||||
us = "${pkgs.systemd}/bin/systemctl --user";
|
||||
wcd = "source ${wcd}";
|
||||
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
||||
where = "source ${where}";
|
||||
yt = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -ic"; # Download video link
|
||||
yta = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -xic"; # Download with audio
|
||||
};
|
||||
}
|
||||
{
|
||||
|
||||
312
configs/mail.nix
312
configs/mail.nix
@@ -5,8 +5,8 @@ in
|
||||
{
|
||||
environment.systemPackages = [ pkgs.neomutt ];
|
||||
|
||||
home-manager.users.me = {
|
||||
accounts.email.maildirBasePath = "${config.users.users.me.home}/mail";
|
||||
home-manager.users.me = let maildir = "${config.users.users.me.home}/mail"; in {
|
||||
accounts.email.maildirBasePath = maildir;
|
||||
accounts.email.accounts = {
|
||||
kieran-gmail = {
|
||||
primary = true;
|
||||
@@ -15,12 +15,24 @@ in
|
||||
realName = config.niveum.user.name;
|
||||
userName = "kieran.meinhardt";
|
||||
passwordCommand = pass "mail/kieran.meinhardt@gmail.com";
|
||||
neomutt.enable = true;
|
||||
neomutt = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
macro index \' "<save-message>+[Gmail]/Alle Nachrichten<enter>" "Archive"
|
||||
'';
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "both";
|
||||
expunge = "both";
|
||||
};
|
||||
folders = {
|
||||
drafts = "[Gmail]/Entw&APw-rfe";
|
||||
sent = "[Gmail]/Gesendet";
|
||||
trash = "[Gmail]/Papierkorb";
|
||||
};
|
||||
msmtp.enable = true;
|
||||
notmuch.enable = false;
|
||||
};
|
||||
hu-berlin = {
|
||||
primary = false;
|
||||
@@ -38,39 +50,138 @@ in
|
||||
port = 993;
|
||||
tls.enable = true;
|
||||
};
|
||||
neomutt.enable = true;
|
||||
neomutt = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
macro index \' "<save-message>Archives<enter>" "Archive"
|
||||
'';
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "both";
|
||||
expunge = "both";
|
||||
};
|
||||
msmtp.enable = true;
|
||||
|
||||
# notmuch.enable = true;
|
||||
notmuch.enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
sidebar.enable = true;
|
||||
sort = "threads"; # or reverse-date
|
||||
sort = "reverse-threads"; # or reverse-threads
|
||||
vimKeys = true;
|
||||
checkStatsInterval = 60;
|
||||
settings = {
|
||||
attribution = "\"%n (%a), %d:\"";
|
||||
date_format = "\"%Y-%m-%d %H:%M\"";
|
||||
mime_forward = "yes"; # forward attachments with mail
|
||||
envelope_from = "yes";
|
||||
fast_reply = "yes"; # skip to compose when forwarding
|
||||
forward_format = "\"Fwd: %s\""; # format of subject when forwarding
|
||||
fcc_attach = "no"; # save attachments with the body
|
||||
forward_format = "\"→ %s\""; # format of subject when forwarding
|
||||
forward_quote = "yes"; # include message in forwards
|
||||
include = "yes"; # include message in replies
|
||||
# index_format = "\"%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)\"";
|
||||
index_format= "\"${pkgs.writeDash "mutt-index" ''
|
||||
# http://www.mutt.org/doc/manual/#formatstrings
|
||||
recipent="$(echo $1 | sed 's/[^,]*<\([^>]*\)[^,]*/ \1/g')"
|
||||
# output to mutt
|
||||
# V
|
||||
echo "%4C %Z %?GI?%GI& ? %[%y-%m-%d] %-20.20a %?M?(%3M)& ? %s %> $recipent %?g?%g?%"
|
||||
# args to mutt-index dash script
|
||||
# V
|
||||
''} %r |\"";
|
||||
mail_check = "60"; # to avoid lags using IMAP with some email providers (yahoo for example)
|
||||
mail_check_stats = "yes";
|
||||
mark_old = "no"; # unread mail stay unread until read
|
||||
markers = "no"; # disables the `+` displayed at line wraps
|
||||
mime_forward = "yes"; # forward attachments with mail
|
||||
# nm_default_uri = "notmuch://${maildir}";
|
||||
# nm_record = "yes";
|
||||
# nm_record_tags = "-inbox archive";
|
||||
virtual_spoolfile = "yes"; # enable virtual folders
|
||||
reverse_name = "yes"; # reply as whomever it was to
|
||||
include = "no"; # dont include message in replies
|
||||
rfc2047_parameters = "yes"; # decode RFC2047-encoded attachments
|
||||
sleep_time = "0"; # pause 0 seconds for informational messages
|
||||
use_from = "yes";
|
||||
wait_key = "no"; # mutt won't ask "press key to continue"
|
||||
mailcap_path = toString (pkgs.writeText "mailcap" ''
|
||||
text/html; ${pkgs.elinks}/bin/elinks -dump; copiousoutput;
|
||||
text/plain; $EDITOR %s ;
|
||||
text/html; ${pkgs.lynx} -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput;
|
||||
image/*; ${pkgs.sxiv}/bin/sxiv %s ;
|
||||
video/*; ${pkgs.utillinux}/bin/setsid ${pkgs.mpv}/bin/mpv --quiet %s &; copiousoutput
|
||||
application/*; ${pkgs.xdg_utils}/bin/xdg-open %s ;
|
||||
'');
|
||||
};
|
||||
# binds = [ {map = null; key = null; action = null; }];
|
||||
macros = [
|
||||
{ action = "<change-dir><kill-line>..<enter>"; map = "browser"; key = "h"; } # go to parent directory
|
||||
{ action = "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" ; map = "index"; key = "\\Cr"; } # mark all messages read
|
||||
{ action = "<shell-escape>mbsync -a<enter>"; map = "index"; key = "O"; } # run mbsync to sync all mail
|
||||
{ action = "<limit>all\\n"; map = "index"; key = "A"; } # show all messages (undo limit)
|
||||
# { action = "<save-message>=Archive<enter><enter-command>echo 'Saved to Archive'<enter>"; map = "index"; key = ",a"; }
|
||||
{
|
||||
action = "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \\$x >~/.cache/mutt_terms<enter><limit>~i \\\"\\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \\`\\\"<enter>";
|
||||
map = "index";
|
||||
key = "\\Cf";
|
||||
}
|
||||
];
|
||||
binds = [
|
||||
{ action = "complete-query"; key = "<Tab>"; map = "editor"; }
|
||||
{ action = "display-message"; key = "l"; map = "index"; }
|
||||
{ action = "exit"; key = "h"; map = "attach"; }
|
||||
{ action = "exit"; key = "h"; map = "pager"; }
|
||||
{ action = "group-reply"; key = "R"; map = "index"; }
|
||||
{ action = "group-reply"; key = "R"; map = "pager"; }
|
||||
{ action = "limit"; key = "L"; map = "index"; }
|
||||
{ action = "next-entry"; key = "j"; map = "index"; }
|
||||
{ action = "next-line"; key = "\\005"; map = "pager"; } # mouse wheel
|
||||
{ action = "next-undeleted"; key = "\\005"; map = "index"; } # mouse wheel
|
||||
{ action = "noop"; key = "<space>"; map = "editor"; }
|
||||
{ action = "noop"; key = "\\Cf"; map = "index"; }
|
||||
{ action = "noop"; key = "h"; map = "index"; }
|
||||
{ action = "noop"; key = "i"; map = "index"; }
|
||||
{ action = "noop"; key = "i"; map = "pager"; }
|
||||
{ action = "previous-entry"; key = "k"; map = "index"; }
|
||||
{ action = "previous-line"; key = "\\031"; map = "pager"; } # mouse wheel
|
||||
{ action = "previous-undeleted"; key = "\\031"; map = "index"; } # mouse wheel
|
||||
{ action = "select-entry"; key = "l"; map = "browser"; }
|
||||
{ action = "sidebar-next"; key = "\\Cj"; map = "index"; }
|
||||
{ action = "sidebar-next"; key = "\\Cj"; map = "pager"; }
|
||||
{ action = "sidebar-next-new"; key = "\\Cn"; map = "index"; }
|
||||
{ action = "sidebar-next-new"; key = "\\Cn"; map = "pager"; }
|
||||
{ action = "sidebar-open"; key = "\\Co"; map = "index"; }
|
||||
{ action = "sidebar-open"; key = "\\Co"; map = "pager"; }
|
||||
{ action = "sidebar-prev"; key = "\\Ck"; map = "index"; }
|
||||
{ action = "sidebar-prev"; key = "\\Ck"; map = "pager"; }
|
||||
{ action = "sidebar-prev-new"; key = "\\Cp"; map = "index"; }
|
||||
{ action = "sidebar-prev-new"; key = "\\Cp"; map = "pager"; }
|
||||
{ action = "sidebar-toggle-visible"; key = "B"; map = "index"; }
|
||||
{ action = "sidebar-toggle-visible"; key = "B"; map = "pager"; }
|
||||
{ action = "sync-mailbox"; key = "S"; map = "index"; }
|
||||
{ action = "sync-mailbox"; key = "S"; map = "pager"; }
|
||||
{ action = "tag-entry"; key = "<space>"; map = "index"; }
|
||||
{ action = "undelete-message"; key = "U"; map = "index"; }
|
||||
{ action = "view-attachments"; key = "l"; map = "pager"; }
|
||||
{ action = "view-mailcap"; key = "<return>"; map = "attach"; }
|
||||
{ action = "view-mailcap"; key = "l"; map = "attach"; }
|
||||
{ action = "view-raw-message"; key = "H"; map = "index"; }
|
||||
{ action = "view-raw-message"; key = "H"; map = "pager"; }
|
||||
];
|
||||
extraConfig = ''
|
||||
auto_view text/html # automatically show html
|
||||
alternative_order text/plain text/enriched text/html
|
||||
|
||||
# virtual-mailboxes "INBOX" "notmuch://?query=tag:inbox"
|
||||
# virtual-mailboxes "Unread" "notmuch://?query=tag:unread"
|
||||
# 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=*"
|
||||
|
||||
# Default index colors:
|
||||
color index yellow default '.*'
|
||||
# color index yellow default '.*'
|
||||
color index_author red default '.*'
|
||||
color index_number blue default
|
||||
color index_subject cyan default '.*'
|
||||
@@ -145,179 +256,6 @@ in
|
||||
|
||||
programs.msmtp.enable = true;
|
||||
programs.mbsync.enable = true;
|
||||
|
||||
/*
|
||||
programs.notmuch.enable = true;
|
||||
|
||||
home.file = {
|
||||
".muttrc".text = ''
|
||||
# read html mail
|
||||
auto_view text/html
|
||||
set mailcap_path = ${pkgs.writeText "mailcap" "text/html; ${pkgs.elinks}/bin/elinks -dump ; copiousoutput;"}
|
||||
|
||||
set nm_default_uri="notmuch://$HOME/Maildir"
|
||||
set nm_record = yes
|
||||
set nm_record_tags = "-inbox me archive"
|
||||
set virtual_spoolfile=yes
|
||||
|
||||
set sendmail=${pkgs.writers.writeDash "msmtp" ''
|
||||
${pkgs.coreutils}/bin/tee >(${pkgs.notmuch}/bin/notmuch insert --create-folder +sent) \
|
||||
| ${pkgs.msmtp}/bin/msmtpq "$@"
|
||||
''}
|
||||
|
||||
# This file contains all of mutt-wizard's default settings.
|
||||
# mutt-wizard will have this file sourced from your muttrc.
|
||||
# In the interest of seamless updating, do not edit this file.
|
||||
# If you want to override any settings, set those in your muttrc.
|
||||
set date_format="%y-%m-%d %I:%M%p"
|
||||
set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)"
|
||||
set sort = 'reverse-date'
|
||||
set rfc2047_parameters = yes
|
||||
set sleep_time = 0 # Pause 0 seconds for informational messages
|
||||
set markers = no # Disables the `+` displayed at line wraps
|
||||
set mark_old = no # Unread mail stay unread until read
|
||||
set mime_forward = yes # attachments are forwarded with mail
|
||||
set wait_key = no # mutt won't ask "press key to continue"
|
||||
set fast_reply # skip to compose when replying
|
||||
set fcc_attach # save attachments with the body
|
||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||
set forward_quote # include message in forwards
|
||||
set reverse_name # reply as whomever it was to
|
||||
set include # include message in replies
|
||||
set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
|
||||
auto_view text/html # automatically show html (mailcap uses w3m)
|
||||
auto_view application/pgp-encrypted
|
||||
alternative_order text/plain text/enriched text/html
|
||||
bind index,pager i noop
|
||||
bind index,pager g noop
|
||||
bind index \Cf noop
|
||||
|
||||
# General rebindings
|
||||
bind index j next-entry
|
||||
bind index k previous-entry
|
||||
bind attach <return> view-mailcap
|
||||
bind attach l view-mailcap
|
||||
bind editor <space> noop
|
||||
bind index G last-entry
|
||||
bind index gg first-entry
|
||||
bind pager,attach h exit
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
bind pager l view-attachments
|
||||
bind index D delete-message
|
||||
bind index U undelete-message
|
||||
bind index L limit
|
||||
bind index h noop
|
||||
bind index l display-message
|
||||
bind index <space> tag-entry
|
||||
#bind browser h goto-parent
|
||||
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
||||
bind index,pager H view-raw-message
|
||||
bind browser l select-entry
|
||||
bind pager,browser gg top-page
|
||||
bind pager,browser G bottom-page
|
||||
bind index,pager,browser d half-down
|
||||
bind index,pager,browser u half-up
|
||||
bind index,pager S sync-mailbox
|
||||
bind index,pager R group-reply
|
||||
bind index \031 previous-undeleted # Mouse wheel
|
||||
bind index \005 next-undeleted # Mouse wheel
|
||||
bind pager \031 previous-line # Mouse wheel
|
||||
bind pager \005 next-line # Mouse wheel
|
||||
bind editor <Tab> complete-query
|
||||
|
||||
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||
macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"
|
||||
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
|
||||
macro index A "<limit>all\n" "show all messages (undo limit)"
|
||||
|
||||
# Sidebar mappings
|
||||
set sidebar_visible = yes
|
||||
set sidebar_width = 20
|
||||
set sidebar_short_path = yes
|
||||
set sidebar_next_new_wrap = yes
|
||||
set mail_check_stats
|
||||
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
||||
bind index,pager \Ck sidebar-prev
|
||||
bind index,pager \Cj sidebar-next
|
||||
bind index,pager \Co sidebar-open
|
||||
bind index,pager \Cp sidebar-prev-new
|
||||
bind index,pager \Cn sidebar-next-new
|
||||
bind index,pager B sidebar-toggle-visible
|
||||
|
||||
# Default index colors:
|
||||
color index yellow default '.*'
|
||||
color index_author red default '.*'
|
||||
color index_number blue default
|
||||
color index_subject cyan default '.*'
|
||||
|
||||
# New mail is boldened:
|
||||
color index brightyellow black "~N"
|
||||
color index_author brightred black "~N"
|
||||
color index_subject brightcyan black "~N"
|
||||
|
||||
# Tagged mail is highlighted:
|
||||
color index brightyellow blue "~T"
|
||||
color index_author brightred blue "~T"
|
||||
color index_subject brightcyan blue "~T"
|
||||
|
||||
# Other colors and aesthetic settings:
|
||||
mono bold bold
|
||||
mono underline underline
|
||||
mono indicator reverse
|
||||
mono error bold
|
||||
color normal default default
|
||||
color indicator brightblack white
|
||||
color sidebar_highlight red default
|
||||
color sidebar_divider brightblack black
|
||||
color sidebar_flagged red black
|
||||
color sidebar_new green black
|
||||
color normal brightyellow default
|
||||
color error red default
|
||||
color tilde black default
|
||||
color message cyan default
|
||||
color markers red white
|
||||
color attachment white default
|
||||
color search brightmagenta default
|
||||
color status brightyellow black
|
||||
color hdrdefault brightgreen default
|
||||
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 brightgreen default
|
||||
color bold black default
|
||||
color underline black default
|
||||
color normal default default
|
||||
|
||||
# Regex highlighting:
|
||||
color header blue default ".*"
|
||||
color header brightmagenta default "^(From)"
|
||||
color header brightcyan default "^(Subject)"
|
||||
color header brightwhite default "^(CC|BCC)"
|
||||
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
||||
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
||||
color body green default "\`[^\`]*\`" # Green text between ` and `
|
||||
color body brightblue default "^# \.*" # Headings as bold blue
|
||||
color body brightcyan default "^## \.*" # Subheadings as bold cyan
|
||||
color body brightgreen default "^### \.*" # Subsubheadings as bold green
|
||||
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
|
||||
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
||||
color body brightcyan default "[;:][)(|]" # emoticons
|
||||
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||
color body red default "(BAD signature)"
|
||||
color body cyan default "(Good signature)"
|
||||
color body brightblack default "^gpg: Good signature .*"
|
||||
color body brightyellow default "^gpg: "
|
||||
color body brightyellow red "^gpg: BAD signature from.*"
|
||||
mono body bold "^gpg: Good signature"
|
||||
mono body bold "^gpg: BAD signature from.*"
|
||||
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||
'';
|
||||
};
|
||||
*/
|
||||
programs.notmuch.enable = false;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user