aboutsummaryrefslogtreecommitdiffstats
path: root/modules/home/conf/neomutt
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home/conf/neomutt')
-rw-r--r--modules/home/conf/neomutt/default.nix168
1 files changed, 168 insertions, 0 deletions
diff --git a/modules/home/conf/neomutt/default.nix b/modules/home/conf/neomutt/default.nix
new file mode 100644
index 00000000..e4fbcb39
--- /dev/null
+++ b/modules/home/conf/neomutt/default.nix
@@ -0,0 +1,168 @@
+{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"];
+ }
+ ];
+ };
+}