This commit is contained in:
Leonardo Eugênio 2023-02-18 16:16:01 -03:00
parent b78fc81374
commit b545641c6e
3 changed files with 196 additions and 104 deletions

View file

@ -23,6 +23,7 @@ let
msmtp.enable = true;
notmuch.enable = true;
neomutt.enable = true;
neomutt.extraMailboxes = boxes;
};
in
{
@ -54,6 +55,7 @@ in
passwordCommand = toString (pkgs.writeShellScript "get_pass" ''
pass "Trabalho/wopus_email/leonardo@wopus.com.br" | head -n1
'');
folders.inbox = "INBOX";
} // defaultAccountSettings { boxes = [ "INBOX" ]; };
};

View file

@ -1,107 +1,159 @@
{ pkgs, lib, ... }:
{ pkgs, lib, config, ... }:
let
inherit (pkgs.uservars) key;
inherit (lib) toUpper;
mkControlBind = key: ''"^${ key }"'';
mkAltBind = key: ''"\e${ key }"'';
mkDirectionBinds' = filter: modes: commands: map
(direction: lib.mkIf (lib.hasAttr direction commands) {
map = modes;
key = filter key.${direction};
action = commands.${direction};
}) [ "left" "down" "up" "right" ];
mkDirectionBinds = mkDirectionBinds' (x: x);
mkDirectionBindsControl = mkDirectionBinds' mkControlBind;
in
{
programs.neomutt.enable = true;
programs.neomutt.binds = [
{
map = [ "index" ];
key = key.left;
action = "noop";
}
{
map = [ "index" ];
key = key.down;
action = "next-entry";
}
{
map = [ "index" ];
key = key.up;
action = "previous-entry";
}
{
map = [ "index" ];
key = key.right;
action = "display-message";
}
programs.neomutt.sidebar.enable = false;
programs.neomutt.sort = "reverse-date";
programs.neomutt.binds =
(mkDirectionBindsControl [ "index" "pager" ] {
up = "half-up";
down = "half-down";
}) ++
(mkDirectionBindsControl [ "index" "pager" ] {
left = "sidebar-toggle-visible";
down = "sidebar-next";
up = "sidebar-prev";
right = "sidebar-open";
}) ++
(mkDirectionBinds [ "index" ] {
left = "noop";
down = "next-entry";
up = "previous-entry";
right = "display-message";
}) ++
(mkDirectionBinds [ "pager" ] {
left = "exit";
down = "next-line";
up = "previous-line";
right = "view-attachments";
}) ++
(mkDirectionBinds [ "attach" ] {
left = "exit";
down = "next-entry";
up = "previous-entry";
right = "view-mailcap";
}) ++ [
# {
# map = [ "index" ];
# key = key.left;
# action = "noop";
# }
# {
# map = [ "index" ];
# key = key.down;
# action = "next-entry";
# }
# {
# map = [ "index" ];
# key = key.up;
# action = "previous-entry";
# }
# {
# map = [ "index" ];
# key = key.right;
# action = "display-message";
# }
{
map = [ "attach" ];
key = key.up;
action = "previous-entry";
}
{
map = [ "attach" ];
key = key.down;
action = "next-entry";
}
{
map = [ "attach" ];
key = key.left;
action = "exit";
}
{
map = [ "attach" ];
key = key.right;
action = "view-mailcap";
}
{
map = [ "pager" ];
key = key.left;
action = "exit";
}
{
map = [ "pager" ];
key = key.down;
action = "next-line";
}
{
map = [ "pager" ];
key = key.up;
action = "previous-line";
}
{
map = [ "pager" ];
key = key.right;
action = "view-attachments";
}
{
map = [ "index" "pager" "browser" ];
key = toUpper key.up;
action = "half-up";
}
{
map = [ "index" "pager" "browser" ];
key = toUpper key.down;
action = "half-down";
}
{
map = [ "browser" ];
key = key.left;
action = "goto-parent";
}
{
map = [ "index" "pager" ];
key = "\\C${ key.down }";
action = "sidebar-next";
}
{
map = [ "index" "pager" ];
key = "\\C${ key.up }";
action = "sidebar-prev";
}
{
map = [ "index" "pager" ];
key = "\\C${ key.right }";
action = "sidebar-open";
}
{
map = [ "index" "pager" ];
key = "\\C${ key.left }";
action = "sidebar-toggle-visible";
}
];
programs.neomutt.extraConfig = lib.readFile ./neomuttrc;
# {
# map = [ "attach" ];
# key = key.left;
# action = "exit";
# }
# {
# map = [ "attach" ];
# key = key.down;
# action = "next-entry";
# }
# {
# map = [ "attach" ];
# key = key.up;
# action = "previous-entry";
# }
# {
# map = [ "attach" ];
# key = key.right;
# action = "view-mailcap";
# }
# {
# map = [ "pager" ];
# key = key.left;
# action = "exit";
# }
# {
# map = [ "pager" ];
# key = key.down;
# action = "next-line";
# }
# {
# map = [ "pager" ];
# key = key.up;
# action = "previous-line";
# }
# {
# map = [ "pager" ];
# key = key.right;
# action = "view-attachments";
# }
# {
# map = [ "index" "pager" "browser" ];
# key = toUpper key.up;
# action = "half-up";
# }
# {
# map = [ "index" "pager" "browser" ];
# key = toUpper key.down;
# action = "half-down";
# }
{
map = [ "browser" ];
key = key.left;
action = "goto-parent";
}
# {
# map = [ "index" "pager" ];
# key = mkControlBind key.down;
# action = "sidebar-next";
# }
# {
# map = [ "index" "pager" ];
# key = mkControlBind key.up;
# action = "sidebar-prev";
# }
# {
# map = [ "index" "pager" ];
# key = mkControlBind key.right;
# action = "sidebar-open";
# }
# {
# map = [ "index" "pager" ];
# key = mkControlBind key.left;
# action = "sidebar-toggle-visible";
# }
];
programs.neomutt.extraConfig = ''
source extra
'';
xdg.configFile."neomutt/extra".source = config.lib.file.mkOutOfStoreSymlink "/home/lelgenio/projects/nixos-config/user/neomutt/neomuttrc";
}

View file

@ -31,21 +31,27 @@ set use_from = yes
# }}}
# General {{{
set use_threads = threads
set sort = reverse-last-date
set sort_aux = last-date
# set use_threads = threads
set sort = threads
set sort_aux = reverse-last-date
set mail_check_stats = yes
set mail_check_stats_interval = 10
set mark_old = no # Unread mail stay unread until read
set mailcap_path = ~/.config/neomutt/mailcap
auto_view text/html # automatically show html
auto_view application/pgp-encrypted
alternative_order text/plain text/enriched text/html
set query_command= "khard email --parsable %s"
# unmailboxes *
mailboxes 'notmuch://?query=tag:inbox'
set spoolfile = 'notmuch://?query=tag:inbox'
# }}}
# General rebindings{{{
@ -115,7 +121,7 @@ set sidebar_visible = yes
set sidebar_width = 20
set sidebar_short_path = yes
set sidebar_next_new_wrap = yes
# set mail_check_stats
set mail_check_stats
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
@ -131,11 +137,43 @@ set markers = no
set date_format="%m/%d %H:%M"
set index_format="%3C %zs %?X?A& ? %D %-15.15F %s"
set display_filter = '_mutt_escape-html-chars'
# set display_filter = '_mutt_escape-html-chars'
#}}}
# colors{{{
# General
color status black default
color indicator brightwhite red
# Messages
color index default default '.*'
color index_number black default
color index_author red default '.*'
color index_subject green default '.*'
# New messages
color index brightgreen default "~N|~O"
color index_author brightred default "~N"
color index_subject brightcyan default "~N"
# Sidebar
color sidebar_new green default
color sidebar_highlight default green
color sidebar_indicator brightwhite red
color sidebar_divider black default
# Header - information for any open email
color header default default "^(Date)"
color header red default "^(From)"
color header green default "^(Subject)"
color header brightwhite default "^(CC|BCC)"
# Content - Body of open email
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 attachment default black
# # General
# color status black default
# color indicator brightwhite {{@@ accent_color_name @@}}