return { --harpoon { 'ThePrimeagen/harpoon', branch = 'harpoon2', keys = { { '', function() require('harpoon'):list():select(1) end, desc = 'buffer j', }, { '', function() require('harpoon'):list():select(2) end, desc = 'buffer k', }, { '', function() require('harpoon'):list():select(3) end, desc = 'buffer l', }, { '', function() require('harpoon'):list():select(4) end, desc = 'buffer ;', }, }, }, -- better escape { 'max397574/better-escape.nvim', config = function() require('better_escape').setup({ mappings = { -- i for insert, other modes are the first letter too i = { -- map kj to exit insert mode k = { j = '', }, -- map jk and jj to exit insert mode j = { k = '', j = '', }, -- disable jj j = { j = false, }, }, }, }) end, }, -- Navigator { 'numToStr/Navigator.nvim', event = 'VeryLazy', config = function() require('Navigator').setup({ auto_save = 'current', disable_on_zoom = false, mux = 'auto', }) end, }, -- float terminal { 'akinsho/toggleterm.nvim', cmd = { 'ToggleTerm' }, version = '*', config = function() require('toggleterm').setup({ size = 10, open_mapping = [[]], hide_numbers = true, shade_filetypes = {}, shade_terminals = true, shading_factor = '2', start_in_insert = true, insert_mappings = true, terminal_mappings = true, persist_size = true, direction = 'float', -- Use 'float' for floating terminal windows close_on_exit = true, shell = vim.o.shell, float_opts = { border = 'curved', -- or 'single', 'double', 'shadow', etc. winblend = 0, -- Set to 0 for full transparency highlights = { border = 'Normal', background = 'Normal', }, }, }) end, }, { 'nvzone/floaterm', dependencies = 'nvzone/volt', opts = { mappings = { term = function(buf) vim.keymap.set({ 'n', 't' }, '', function() require('floaterm.api').cycle_term_bufs('prev') end, { buffer = buf }) end, }, }, cmd = 'FloatermToggle', }, -- smooth scrolling { 'karb94/neoscroll.nvim', opts = {}, }, -- discord presence -- { -- "vyfor/cord.nvim", -- event = "VeryLazy", -- }, -- uv { 'benomahony/uv.nvim', ft = 'python', event = 'BufReadPre', opts = { picker_integration = true, keymaps = { prefix = 'u', -- Main prefix for uv commands commands = true, -- Show uv commands menu (x) run_file = true, -- Run current file (xr) run_selection = true, -- Run selected code (xs) run_function = true, -- Run function (xf) venv = true, -- Environment management (xe) init = true, -- Initialize uv project (xi) add = true, -- Add a package (xa) remove = true, -- Remove a package (xd) sync = true, -- Sync packages (xc) sync_all = true, -- Sync all packages, extras and groups (xC) }, }, }, { 'wakatime/vim-wakatime', event = 'VimEnter', lazy = false }, -- { -- "m4xshen/hardtime.nvim", -- lazy = false, -- opts = {}, -- }, -- file operations { 'chrisgrieser/nvim-genghis', keys = { { 'fp', function() require('genghis').createNewFile() end, desc = 'New File', }, { 'fd', function() require('genghis').duplicateFile() end, desc = 'Duplicate File', }, { 'fr', function() require('genghis').renameFile() end, desc = 'Rename File', }, { 'fx', function() require('genghis').chmodx() end, desc = 'Make Executable', }, }, }, }