nix/home/email/neomutt/default.nix
2025-04-05 16:34:08 -05:00

78 lines
2.2 KiB
Nix

{
pkgs,
config,
lib,
...
}:
let
keybinds = import ./keybind.nix rec {
inherit config lib pkgs;
};
colors = import ./colors.nix rec {
inherit config lib pkgs;
};
in
{
options.custom.email = with lib; {
neomutt = mkEnableOption "Enable NeoMutt";
};
config = lib.mkIf (config.custom.email.enable && config.custom.email.neomutt) {
xsession.windowManager.i3.config =
let
i3config = config.xsession.windowManager.i3.config;
in
{
keybindings = lib.mkOptionDefault {
"${i3config.modifier}+m" =
"exec --no-startup-id ${i3config.terminal} -e ${config.programs.neomutt.package}/bin/neomutt";
};
};
programs.neomutt = {
enable = true;
vimKeys = false;
sort = "threads";
unmailboxes = true;
binds = keybinds.binds ++ [ ];
macros = keybinds.macros ++ [ ];
extraConfig = ''
set abort_key = "<Esc>"
# set editor = "nvim"
set editor = "emacs -nw"
set edit_headers = yes
set sidebar_visible
set sidebar_format = "%D%?F? [%F]?%* %?N?%N/?%S"
set mail_check_stats
# set new_mail_command="notify-send 'New Email' '%n new messages, %u unread.' &"
# status bar, date format, finding stuff etc.
set status_chars = " *%A"
# set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>%?p?( %p postponed )?"
set status_format = "[ Folder: %D ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>%?p?( %p postponed )?"
set date_format = "%d.%m.%Y %H:%M"
set uncollapse_jump
set sort_re
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
set send_charset = "utf-8:iso-8859-1:us-ascii"
set charset = "utf-8"
set arrow_cursor = "no" # Change `color indicator` depending
# Pager View Options
set pager_index_lines = 10 # Shows 10 lines of index when pager is active
set pager_context = 3
set pager_stop
set menu_scroll
set tilde
unset markers
${colors}
'';
};
};
}