-- ╭─────────────────────────────────────────────────────────╮ -- │ Keybinds │ -- ╰─────────────────────────────────────────────────────────╯ -- Initialize which-key local wk = require("which-key") local rootiest = require("config.rootiest") local smartsplits = require("smart-splits") local all_modes = { "n", "i", "v", "x", "s", "o", "c", "t" } -- Helper function to add keymaps with common properties local function add_keymap(lhs, rhs, desc, modes) wk.add({ { lhs, rhs = rhs, desc = desc, mode = modes or "n", -- default to normal mode if not specified }, }) end -- General Keybinds add_keymap("gt", function() rootiest.toggle_lazygit_term() end, "LazyGit Terminal") add_keymap("yo", function() rootiest.yank_line() end, "Yank Line-text") add_keymap("uH", function() rootiest.toggle_hardmode() end, "Toggle Hardmode") add_keymap("Y", "%y", "Yank buffer contents") add_keymap("|", "Neotree reveal", "Neotree reveal") -- Group Keybinds wk.add({ { lhs = "I", group = "IconPicker", icon = { icon = "󰥸", color = "orange" }, }, { lhs = "gn", group = "Gists", icon = { icon = "", color = "orange" }, }, { lhs = "l", group = "Lazy", }, { "lv", "Lazy", desc = "LazyVim", }, { "lx", "LazyExtras", desc = "LazyExtras", }, { lhs = "m", group = "MiniMap", icon = { icon = "", color = "yellow" }, }, { "u,", group = "Font" }, }) -- Resizing splits local resize_splits = { { "", function() smartsplits.resize_left() end, "Resize split left", }, { "", function() smartsplits.resize_down() end, "Resize split down", }, { "", function() smartsplits.resize_up() end, "Resize split up", }, { "", function() smartsplits.resize_right() end, "Resize split right", }, } for _, map in ipairs(resize_splits) do add_keymap(map[1], map[2], map[3], all_modes) end -- Moving between splits local move_splits = { { "", function() smartsplits.move_cursor_left() end, "Move cursor left", }, { "", function() smartsplits.move_cursor_down() end, "Move cursor down", }, { "", function() smartsplits.move_cursor_up() end, "Move cursor up", }, { "", function() smartsplits.move_cursor_right() end, "Move cursor right", }, { "", function() smartsplits.move_cursor_previous() end, "Move cursor to previous split", }, } for _, map in ipairs(move_splits) do add_keymap(map[1], map[2], map[3], all_modes) end -- Swapping buffers between windows local swap_buffers = { { "", function() smartsplits.swap_buf_left() end, "Swap buffer left", }, { "", function() smartsplits.swap_buf_down() end, "Swap buffer down", }, { "", function() smartsplits.swap_buf_up() end, "Swap buffer up", }, { "", function() smartsplits.swap_buf_right() end, "Swap buffer right", }, } for _, map in ipairs(swap_buffers) do add_keymap(map[1], map[2], map[3], all_modes) end