{pkgs, ...}: { programs.neomutt = { enable = true; package = pkgs.writeShellScriptBin "neomutt" '' systemctl --user start mbsync.service; ${pkgs.neomutt}/bin/neomutt; ''; vimKeys = false; # see the modified ones below checkStatsInterval = 60; binds = [ #------------------------------------------------------------ # Vi Key Bindings (taken from their configuration, modified for dvorak) #------------------------------------------------------------ # Moving around { action = "noop"; key = "g"; map = ["attach" "browser" "index"]; } { action = "first-entry"; key = "gg"; map = ["attach" "browser" "index"]; } { action = "last-entry"; key = "G"; map = ["attach" "browser" "index"]; } { action = "noop"; key = "g"; map = ["pager"]; } { action = "top"; key = "gg"; map = ["pager"]; } { action = "bottom"; key = "G"; map = ["pager"]; } { action = "previous-line"; key = "n"; map = ["pager"]; } { action = "next-line"; key = "t"; map = ["pager"]; } # Scrolling { action = "next-page"; key = "\\CF"; map = ["attach" "browser" "pager" "index"]; } { action = "previous-page"; key = "\\CB"; map = ["attach" "browser" "pager" "index"]; } { action = "half-up"; key = "\\Cu"; map = ["attach" "browser" "pager" "index"]; } { action = "half-down"; key = "\\Cd"; map = ["attach" "browser" "pager" "index"]; } { action = "next-line"; key = "\\Ce"; map = ["browser" "pager"]; } { action = "previous-line"; key = "\\Cy"; map = ["browser" "pager"]; } { action = "next-line"; key = "\\Ce"; map = ["index"]; } { action = "previous-line"; key = "\\Cy"; map = ["index"]; } { action = "noop"; key = "d"; map = ["pager" "index"]; } { action = "delete-message"; key = "dd"; map = ["pager" "index"]; } # Mail & Reply { # Doesn't work currently action = "list-reply"; key = "\\Cm"; map = ["index"]; } # Threads { action = "search-opposite"; key = "N"; map = ["browser" "pager" "index"]; } { action = "delete-thread"; key = "dT"; map = ["pager" "index"]; } { action = "delete-subthread"; key = "dt"; map = ["pager" "index"]; } { action = "next-thread"; key = "gt"; map = ["pager" "index"]; } { action = "previous-thread"; key = "gT"; map = ["pager" "index"]; } { action = "collapse-thread"; key = "za"; map = ["index"]; } { # Missing: folddisable/foldenable action = "collapse-all"; key = "zA"; map = ["index"]; } { action = "search-next"; key = "l"; map = ["index"]; } { action = "limit"; key = "f"; map = ["index"]; } ]; }; }