return { { "akinsho/toggleterm.nvim", cmd = { "ToggleTerm", "ToggleTermSetName", "ToggleTermToggleAll", "ToggleTermSendVisualLines", "ToggleTermSendCurrentLine", "ToggleTermSendVisualSelection", }, opts = { size = function(term) if term.direction == "horizontal" then return 30 elseif term.direction == "vertical" then return vim.o.columns * 0.4 end end, open_mapping = [[]], hide_numbers = true, -- hide the number column in toggleterm buffers shade_filetypes = {}, shade_terminals = true, -- NOTE: this option takes priority over highlights specified so if you specify Normal highlights you should set this to false shading_factor = "-10", -- the percentage by which to lighten terminal background, default: -30 (gets multiplied by -3 if background is light) start_in_insert = true, insert_mappings = true, -- whether or not the open mapping applies in insert mode terminal_mappings = true, -- whether or not the open mapping applies in the opened terminals persist_size = true, persist_mode = true, -- if set to true (default) the previous terminal mode will be remembered direction = "float", close_on_exit = true, -- close the terminal window when the process exits -- Change the default shell. Can be a string or a function returning a string shell = vim.o.shell, -- This field is only relevant if direction is set to 'float' float_opts = { -- The border key is *almost* the same as 'nvim_open_win' -- see :h nvim_open_win for details on borders however -- the 'curved' border is a custom border type -- not natively supported but implemented in this plugin. border = "curved", -- like `size`, width and height can be a number or function which is passed the current terminal highlights = { border = "Normal", background = "Normal" }, winblend = 3, }, }, -- stylua: ignore keys = { { [[]], "ToggleTerm", mode = "n", desc = "Toggle Terminal" }, }, }, { "ryanmsnyder/toggleterm-manager.nvim", opts = {}, keys = { { "st", "Telescope toggleterm_manager", desc = "Terminals" }, }, }, }