about summary refs log tree commit diff stats
path: root/home-manager
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-06-16 07:57:35 +0200
committerSoispha <soispha@vhack.eu>2023-06-16 08:04:16 +0200
commit032875ea9cd9128fe85307a2281308ff00c04617 (patch)
treed75304fb19be4303b9fc3a200dfbc4ea7f5806f6 /home-manager
parentFix(hm/conf/gpg/agent): Reduce verbosity (diff)
downloadnixos-config-032875ea9cd9128fe85307a2281308ff00c04617.tar.gz
nixos-config-032875ea9cd9128fe85307a2281308ff00c04617.zip
Fix(hm/conf/neomutt): Use vim-like keybindings
Diffstat (limited to 'home-manager')
-rw-r--r--home-manager/config/neomutt/default.nix147
1 files changed, 146 insertions, 1 deletions
diff --git a/home-manager/config/neomutt/default.nix b/home-manager/config/neomutt/default.nix
index 5d1152c1..01833656 100644
--- a/home-manager/config/neomutt/default.nix
+++ b/home-manager/config/neomutt/default.nix
@@ -5,9 +5,154 @@
       systemctl --user start mbsync.service;
       ${pkgs.neomutt}/bin/neomutt;
     '';
-    vimKeys = true;
+    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 = "imap-fetch-mail";
         key = "g";