about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs/leap/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/leap/default.nix')
-rw-r--r--modules/by-name/nv/nvim/plgs/leap/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/by-name/nv/nvim/plgs/leap/default.nix b/modules/by-name/nv/nvim/plgs/leap/default.nix
new file mode 100644
index 00000000..57e78879
--- /dev/null
+++ b/modules/by-name/nv/nvim/plgs/leap/default.nix
@@ -0,0 +1,65 @@
+{
+  config,
+  lib,
+  ...
+}: let
+  cfg = config.soispha.programs.nvim;
+in {
+  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
+    plugins.leap = {
+      enable = true;
+      addDefaultMappings = false; # They don't work with dvorak.
+      safeLabels = [
+        "f"
+        "j"
+        "k"
+        "l"
+        "/"
+        "z"
+        "S"
+        "F"
+        "J"
+        "K"
+        "L"
+        "H"
+        "W"
+        "E"
+        "M"
+        "B"
+        "U"
+        "X"
+        "?"
+        "Z"
+      ];
+    };
+    keymaps = [
+      {
+        key = "j";
+        action = "<Plug>(leap-forward-to)";
+        options.desc = "jump forward to";
+      }
+      {
+        key = "J";
+        action = "<Plug>(leap-backward-to)";
+        options.desc = "jump backward to";
+      }
+      {
+        key = "gj";
+        action = "<Plug>(leap-from-window)";
+        options.desc = "jump to enterable windows";
+      }
+      /*
+            {key= "x";
+              mode = "v";
+              action = "<Plug>(leap-forward-till)";
+      options.desc = "leap forward till";
+            }
+            {key= "X";
+              mode = "v";
+              action = "<Plug>(leap-backward-till)";
+      options.desc = "leap backward till";
+            }
+      */
+    ];
+  };
+}