From 1fff0853201854b6633a5d1275ebc0f83ca9bbe9 Mon Sep 17 00:00:00 2001
From: insects <mail@liv.nrw>
Date: Mon, 14 Apr 2025 17:31:58 +0200
Subject: [PATCH] nvim: move keybinds to which-key.lua

---
 dot_config/nvim/init.lua                  |  1 -
 dot_config/nvim/lua/keymap.lua            | 32 ----------------------
 dot_config/nvim/lua/plugins/which-key.lua | 33 +++++++++++++++++++++++
 3 files changed, 33 insertions(+), 33 deletions(-)
 delete mode 100644 dot_config/nvim/lua/keymap.lua

diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua
index 832052d..c6b0eb8 100644
--- a/dot_config/nvim/init.lua
+++ b/dot_config/nvim/init.lua
@@ -1,3 +1,2 @@
 require("settings")
-require("keymap")
 require("config.lazy")
diff --git a/dot_config/nvim/lua/keymap.lua b/dot_config/nvim/lua/keymap.lua
deleted file mode 100644
index f22beac..0000000
--- a/dot_config/nvim/lua/keymap.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-local function map(mode, lhs, rhs, desc, opts)
-  local options = { noremap = true, silent = true }
-  if opts then
-    options = vim.tbl_extend("force", options, opts)
-  end
-  vim.keymap.set(mode, lhs, rhs, vim.tbl_extend("force", options, { desc = desc }))
-end
-
--- Buffer navigation
-map("n", "<S-h>", "<cmd>bp<cr>", "")
-map("n", "<S-k>", "<cmd>bn<cr>", "")
-map("n", "<leader>bb", "<cmd>e #<cr>", "Switch to other buffer")
-map("n", "<leader>`", "<cmd>e #<cr>", "Switch to other buffer")
-map("n", "<leader>bd", "<cmd>bd<cr>", "Delete buffer")
-map("n", "<leader>bp", "<cmd>bp<cr>", "Previous buffer")
-map("n", "<leader>bn", "<cmd>bn<cr>", "Next buffer")
-
--- Better indentation
-map("v", "<", "<gv")
-map("v", ">", ">gv")
-
--- Lazy
-map("n", "<leader>l", "<cmd>Lazy<cr>", "Lazy")
-
--- Mason
-map("n", "<leader>cm", "<cmd>Mason<cr>", "Mason")
-
--- Clear search on escape
-map({ "i", "n", "s" }, "<esc>", function()
-  vim.cmd("noh")
-  return "<esc>"
-end, "", { expr = true })
diff --git a/dot_config/nvim/lua/plugins/which-key.lua b/dot_config/nvim/lua/plugins/which-key.lua
index 5e4d8be..63e9a04 100644
--- a/dot_config/nvim/lua/plugins/which-key.lua
+++ b/dot_config/nvim/lua/plugins/which-key.lua
@@ -7,12 +7,45 @@ return {
     opts = {
       preset = "helix",
       spec = {
+        -- Groups
         { "<leader>f", group = "file" },
         { "<leader>b", group = "buffer" },
         { "<leader>c", group = "code" },
         { "<leader>g", group = "vc" },
         { "<leader>s", group = "search" },
         { "<leader>,", group = "vim" },
+
+        -- Buffer navigation
+        { "<leader>bb", "<cmd>e #<cr>", desc = "Switch to other buffer", mode = "n", proxy = "<leader>`" },
+        { "<leader>bd", "<cmd>bd<cr>", desc = "Delete buffer", mode = "n" },
+        { "<leader>bn", "<cmd>bn<cr>", desc = "Next buffer", mode = "n", proxy = "<S-l>" },
+        { "<leader>bp", "<cmd>bp<cr>", desc = "Previous buffer", mode = "n", proxy = "<S-h>" },
+
+        -- Better indentation
+        { "<", "<gv", mode = "v" },
+        { ">", ">gv", mode = "v" },
+
+        -- Windows
+        { "<leader>ws", "<C-W>s", desc = "Split window below" },
+        { "<leader>wv", "<C-W>v", desc = "Split window right" },
+        { "<leader>wq", "<C-W>c", desc = "Close window" },
+        { "<leader>wO", "<C-W>o", desc = "Close other windows" },
+
+        -- Lazy
+        { "<leader>l", "<cmd>Lazy<cr>", mode = "n", desc = "Lazy" },
+
+        -- Mason
+        { "<leader>cm", "<cmd>Mason<cr>", mode = "n", desc = "Mason" },
+
+        -- Clear search on escape
+        {
+          "<esc>",
+          function()
+            vim.cmd("noh")
+            return "<esc>"
+          end,
+          expr = true,
+        },
       },
     },
   },